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 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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 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; }
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é partout et testé différents types mais pas de résultat..*
Auriez vous la réponse svp ?
Partager