Fichier enregistré dans MySQL PB Affichage avec PHP
georges
-
jeremy.s Messages postés 1248 Statut Membre -
jeremy.s Messages postés 1248 Statut Membre -
Bonjour,
Je m'explique j'ai une base MySQL contenant une table qui doit comprendre un fichier PDF (champ longblob).
Description de la table :
CREATE TABLE 'base_test_trigger'.'t' (
'id' INT( 8 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
'longblob' LONGBLOB NOT NULL
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_unicode_ci;
J'utilise un formulaire php avec pour ce champ un input file : <INPUT type="file" name="truc" required> j'enregistre mais lors de l'enregistrement j'enregistre que le nom et le type du fichier. Alors que je veux enregistrer le fichier. Si quelqu'un peut m'aider ^^"
Et pareil pour la lecture de la table je fais une liste et du coup j'ai plein de caractère spéciaux avec des ? entouré d'un carré ... :
%PDF-1.5 %???? 1 0 obj <>>> endobj 2 0 obj <> endobj 3 0 obj <>/ProcSet/PDF/Text/ImageB/ImageC/ImageI >>/MediaBox[ 0 0 595.32 841.92] /Contents 5 0 R/Group<>/Tabs/S/StructParents 1>> endobj 4 0 obj <>/F 4/A<>/StructParent 0>> endobj 5 0 obj <> stream x??\Ys??~w??j??TbN\?R?|?n????!e?\?ItH?&?q????Hw@a8Nme GO????5P4???7?Ç???<???????yt?????31????E ??4? ?Q??X???{???????{o&????DL?f?k??????????"?!?*V?7?/m+??f?I\\MO?d>??8?t?}?WK??U?O?dV ?/??|z?Nv???*??I9Kt2=?-???iW.??g4B&q??F.??S??????sv??z*&??e?s????l?)O&??-?vo?>??/?h??}??}M?*Ic?Fg?h?h?????l?Y?XFR?XDI??$????{?????v???k??C1?K?8?6????n}R?ck?
J'ai utilisé : header('Content-type: application/pdf'); mais rien n'y fait...
Merci pour vos réponse à l'avance, je débute et j'ai un peu de mal... J'ai déjà cherché sur le net mais j'ai rien trouvé non plus.
Au pire si quelqu'un a du code (mysql,php) qui fait ce que je demande histoire de pouvoir le tester et l'adapter ça serait super sympa
Coridalement,
Je m'explique j'ai une base MySQL contenant une table qui doit comprendre un fichier PDF (champ longblob).
Description de la table :
CREATE TABLE 'base_test_trigger'.'t' (
'id' INT( 8 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
'longblob' LONGBLOB NOT NULL
) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_unicode_ci;
J'utilise un formulaire php avec pour ce champ un input file : <INPUT type="file" name="truc" required> j'enregistre mais lors de l'enregistrement j'enregistre que le nom et le type du fichier. Alors que je veux enregistrer le fichier. Si quelqu'un peut m'aider ^^"
Et pareil pour la lecture de la table je fais une liste et du coup j'ai plein de caractère spéciaux avec des ? entouré d'un carré ... :
%PDF-1.5 %???? 1 0 obj <>>> endobj 2 0 obj <> endobj 3 0 obj <>/ProcSet/PDF/Text/ImageB/ImageC/ImageI >>/MediaBox[ 0 0 595.32 841.92] /Contents 5 0 R/Group<>/Tabs/S/StructParents 1>> endobj 4 0 obj <>/F 4/A<>/StructParent 0>> endobj 5 0 obj <> stream x??\Ys??~w??j??TbN\?R?|?n????!e?\?ItH?&?q????Hw@a8Nme GO????5P4???7?Ç???<???????yt?????31????E ??4? ?Q??X???{???????{o&????DL?f?k??????????"?!?*V?7?/m+??f?I\\MO?d>??8?t?}?WK??U?O?dV ?/??|z?Nv???*??I9Kt2=?-???iW.??g4B&q??F.??S??????sv??z*&??e?s????l?)O&??-?vo?>??/?h??}??}M?*Ic?Fg?h?h?????l?Y?XFR?XDI??$????{?????v???k??C1?K?8?6????n}R?ck?
J'ai utilisé : header('Content-type: application/pdf'); mais rien n'y fait...
Merci pour vos réponse à l'avance, je débute et j'ai un peu de mal... J'ai déjà cherché sur le net mais j'ai rien trouvé non plus.
Au pire si quelqu'un a du code (mysql,php) qui fait ce que je demande histoire de pouvoir le tester et l'adapter ça serait super sympa
Coridalement,
1 réponse
-
Salut !
Alors enfaite, tu ne peux pas "stocké" de fichier dans la BDD !
Par contre, tu peux stocké les fichiers sur ton serveur, donc par exemple /docs/monfichier.pdf. Dans ce cas là, ce que tu peux faire, c'est stocké le chemin du fichier en BDD :)
Regarde les exemples d'upload de fichier :)-
-
-
-
Bah ca si, mais je ne savais pas qu'il y avait des fonctions (propre au SGBD ? ou en PHP ?) qui tranformait les fichiers en données binaires pour les stocké. (Ou alors j'ai loupé ce diapo !).
Oui, stocké le fichier dans un dossier, et récupérer juste le chemin me parrait la manière la plus propre aussi. C'est du basic et ca marche parfaitement !
-