Traitement d'images sql server/php

Fermé
Serge Pascal - 29 juil. 2005 à 12:16
 tiana - 8 déc. 2006 à 18:49
Salut, je voudrais inserer et afficher une image dans sql server 2000 et php.
1-Voici le script d'insertion (qui semble marcher bien):
// save file to store image
$datastring = file_get_contents("img.jpg");
$data = unpack("H*hex", $datastring);
mssql_query("insert into TblDocument (name, data)
values ('img.jpg', 0x".$data['hex'].")
");
2- Voici le script d'affichage:
// retrieving
$result = mssql_query("select data from TblDocument WHERE IDDoc = '$id'");
$lgnImg = mssql_fetch_object($result);
header("Content-type: image/pjpeg;");
echo $lngImg->data;
Ce script ne marche pas.
Je souhaiterais que vous me proposer quelque chose merçi
A voir également:

13 réponses

je comprends pas pourquoi tu ajoutes une commande unpack... J'ai un script similaire qui fonctionne plus ou moins avec les jpeg (l'affichage est brouillé!)
https://codes-sources.commentcamarche.net/
1
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
29 juil. 2005 à 13:05
Salut,

Qu'est ce ui ne marche pas?
Tu ne t'es pas gourré dans le header?
Ce ne serait pas plutôt:
 header("Content-type: image/jpeg")
0
serge pascal
29 juil. 2005 à 13:14
Si j'ai mis ce header("Content-type: image/pjpeg"); c parce que lors de l'insertion, le type de donnée ds le champs est "image/pjpeg". Toutefois même en mettant ceci header("Content-type: image/jpeg"); j'ai toujours le cadre de l'image qui s'affiche avec ses dimensions mais pas l'image
Merçi de me répondre
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
29 juil. 2005 à 13:25
Alors là je ne saurais pas te dire....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
serge pascal
30 juil. 2005 à 10:31
Salut kilian, j'ai une autre idée. Peux-tu regarder le script d'insertion ? je pense que le pb se situe à ce niveau
Merçi
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
30 juil. 2005 à 16:50
Ca te donne quoi si tu fais:
echo $data['hex'];
?
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
30 juil. 2005 à 16:54
Ce ne serait pas mieux d'enregistrer ta valeur hexadécimale comme étant une chaine de caractère plutôt qu'un entier?
Parce que ta valeur hexadécimale doit être enorme!! A mon avis, c'est
trop pour une base de données de supporter un entier pareil.
Si c'est une chaine tu ne devrais pas avoir de soucis.

Compare la valeur de $data['hex']; et celle qui a été enregistrée dans ta base. Je parie que tu as un souci à ce niveau là.
0
Salut kilian,
Justement mon souci c certainement à ce niveau. En hexa c trop gros comme un entier, je recois le message les erreurs suivantes:

mssql_query() [function.mssql-query]: message: Unclosed quotation mark before the character string 'ÿØÿà'. (severity 15) in d:\wamp\www\prjpapyrus\image2.php on line 52


Warning: mssql_query() [function.mssql-query]: message: Line 2: Incorrect syntax near 'ÿØÿà'. (severity 15) in d:\wamp\www\prjpapyrus\image2.php on line 52

Warning: mssql_query() [function.mssql-query]: Query failed in d:\wamp\www\prjpapyrus\image2.php on line 52

Merçi de me répondre
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
2 août 2005 à 12:49
Non, là tu as une erreur de guillemet (faut echapper tes guillemets avant de les insérérer dans ta base):
message: Unclosed quotation
0
echo $data['hex'] renvoi une chaine en hexa. Toutefois, peux-tu me proposer un script ou améliorer ce que j'ai proposé ?
Merçi
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
2 août 2005 à 12:50
Et quand tu regarde dans ta base après tu vois quoi comme valeur?
data c'est un champs de quel type?
0
Salut,
Bien sur ds la bd on ne voit que du code binaire. En plus j'ai utilisé str_replace ou addslashes pour contourner en vain. Je te propose s de prendre ces script et expérimenter puis tu me renvoi ta version qui marche.
Merçi de me répondre.
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
2 août 2005 à 13:13
Ce qui m'arrange pas c'est que je n'ai pas mssql_server .
Alors pour tester....

Finalement l'antislash ne fonctionne pas car tu n'insères pas ta valeur comme une chaine mais comme une valeur numerique.
Data est de quel type? Entier? Chaine de caractère?
Si c'est un entier essaie de le transformer en type texte pour voir et d'insérer ta valeur entre guillemets dans ta requête.
0
Dommage. Merçi de toujours m'informer
0
Data est de type image
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
3 août 2005 à 00:18
Arg, désolé, je sais pas trop comment fonctionne ce genre de type....
0