Quel format de données pour insérer un pdf dans un champ BLOB ?
Adriano87
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
Adriano87 Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
Adriano87 Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
dans le cadre d'un projet php, il m'est imposé de coder cette opération.
(Pour avoir fait de nombreuses recherches sur les champs blob, je sais que cela n'est pas conseillé mais ce n'est pas moi qui décide.)
J'arrive à récupérer le contenu du champ et à recomposer un pdf valide, mais pour l'opération d'insertion ou update je n'y parviens pas.
Environnement : PHP + SQL SERVER
Voici la fonction qui exécute la requete :
Comme vous pouvez voir j'ai testé deux requetes différentes car bulk fonctionnait sous un autre projet en vb.net mais ici c'est différent et cela ne fonctionne pas.
Le fichier se trouve sur le serveur wamp local pour le développement, dans le répertoire du site, et je n'ai pas mis le chemin complet depuis C:\ car il faudrait qu'il soit trouvé quelque soit le type de serveur.
La deuxième requete me parait être la plus indiquée mais je bute sur le format de données à envoyer.
Pour la réception de fichier il s'agit d'une chaine en hexadécimal, mais quand j'effectue l'update avec la nouvelle chaine en hexa, cela stocke simplement une chaine en hexa dans le blob et non un pdf valide.
J'ai cherché et testé différents types mais pas de résultat..
Auriez vous la réponse svp ?
dans le cadre d'un projet php, il m'est imposé de coder cette opération.
(Pour avoir fait de nombreuses recherches sur les champs blob, je sais que cela n'est pas conseillé mais ce n'est pas moi qui décide.)
J'arrive à récupérer le contenu du champ et à recomposer un pdf valide, mais pour l'opération d'insertion ou update je n'y parviens pas.
Environnement : PHP + SQL SERVER
Voici la fonction qui exécute la requete :
public function updateDocument($idDocument, $content) { //$req = "UPDATE DOCUMENTS SET BLOB = (SELECT BULKCOLUMN FROM OPENROWSET(BULK 'documents/marge.pdf', SINGLE_BLOB) AS I) WHERE ID_DOCUMENT = $idDocument"; $req = "UPDATE DOCUMENTS SET BLOB = '$content' WHERE ID_DOCUMENT = $idDocument"; $res = ConnectionDb::$myPdo->exec($req); return $res; }
Comme vous pouvez voir j'ai testé deux requetes différentes car bulk fonctionnait sous un autre projet en vb.net mais ici c'est différent et cela ne fonctionne pas.
Le fichier se trouve sur le serveur wamp local pour le développement, dans le répertoire du site, et je n'ai pas mis le chemin complet depuis C:\ car il faudrait qu'il soit trouvé quelque soit le type de serveur.
La deuxième requete me parait être la plus indiquée mais je bute sur le format de données à envoyer.
Pour la réception de fichier il s'agit d'une chaine en hexadécimal, mais quand j'effectue l'update avec la nouvelle chaine en hexa, cela stocke simplement une chaine en hexa dans le blob et non un pdf valide.
J'ai cherché et testé différents types mais pas de résultat..
Auriez vous la réponse svp ?
A voir également:
- Quel format de données pour insérer un pdf dans un champ BLOB ?
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Format epub - Guide
- Format factory - Télécharger - Conversion & Codecs
- Insérer une vidéo dans powerpoint - Guide
- Hp usb disk storage format tool - Télécharger - Stockage
1 réponse
je m'aperçois que lorsque j'envoie la chaine en hexadecimal dans le blob, le résultat visible avec SQL management studio, est une chaine en décimal alors que les pdf envoyés par mon application VB.net avec openrowset (et valides) affichent une chaine en hexadecimal...
lorsque j'envoie les données sans conversion, à la sortie de la fonction php "file_get_contents" , ça ne fonctionne pas je pense à cause de tous les caractères spéciaux, et si j'essaye de les enlever avec d'autres fonctions le fichier n'est pas bon non plus...
je m'arrache les cheveux ^^
lorsque j'envoie les données sans conversion, à la sortie de la fonction php "file_get_contents" , ça ne fonctionne pas je pense à cause de tous les caractères spéciaux, et si j'essaye de les enlever avec d'autres fonctions le fichier n'est pas bon non plus...
je m'arrache les cheveux ^^