Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1121 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] insérer une image dans MySql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] insérer une image dans MySql

n°515482
warp
Posté le 16-09-2003 à 10:04:09  profilanswer
 

J'essaye d'insérer une image dans un champ de type BLOB
dans une DB mysql.
 
certaines fonctions marchent,
je peux en effet visualiser une image que j'ai inséré "à la main" avec MySql Control Center,
 
mais je n'arrive pas à insérer cette même image avec un script PHP.
 
mysql-3.23.52-17
PHP Version 4.2.2
 
Après un form qui sélectionne l'image, voici le script :

Code :
  1. $hndl=fopen($_REQUEST["imgfile"],"r" );
  2.   $imgdata=fread($hndl,filesize($_REQUEST["imgfile"]));
  3.  
  4.   $imgdata=addslashes($imgdata);
  5.   $dbname ="test";
  6.   $dbserver = "localhost";
  7.   $dbuser ="root";
  8.   $dbpass ="test";
  9.   $dbconn = @mysql_connect($dbserver,$dbuser,$dbpass) or exit("SERVER Unavailable" ); 
  10.   @mysql_select_db($dbname,$dbconn) or exit("DB Unavailable" ); 
  11.   $sql = "INSERT INTO tblimage VALUES(NULL,'". $_REQUEST["imgtype"] ."','". $imgdata ."')"; 
  12.   @mysql_query($sql,$dbconn) or exit("QUERY FAILED!" ); 
  13.   mysql_close($dbconn); 
  14.   fclose($hndl);


 
et l'erreur :

Code :
  1. Warning: fopen("C:\\bg_header2.gif", "r" ) - No such file or directory in /srv/www/htdocs/test_imagedb.php on line 32
  2. Warning: stat failed for C:\\bg_header2.gif (errno=2 - No such file or directory) in /srv/www/htdocs/test_imagedb.php on line 33
  3. Warning: fread(): supplied argument is not a valid File-Handle resource in /srv/www/htdocs/test_imagedb.php on line 33
  4. Warning: fclose(): supplied argument is not a valid File-Handle resource in /srv/www/htdocs/test_imagedb.php on line 52


Une seule erreur donc, il n'arrive pas à lire l'image, mais pourquoi ?
J'insiste que la table est bien configurée,
puisque j'arrive à lire une image que j'ai inséré avec
Mysql Control Center.


Message édité par warp le 16-09-2003 à 10:04:38

---------------
Il n'est pas nécéssaire de réussir pour persévérer.
mood
Publicité
Posté le 16-09-2003 à 10:04:09  profilanswer
 

n°515483
warp
Posté le 16-09-2003 à 10:05:31  profilanswer
 

Ah oui, petite précision
 
la BD tourne sur un ordi,
et je teste le script sur un autre.....
(vous l'aurez remarqué avec les messages d'erreur)


Message édité par warp le 16-09-2003 à 10:06:09

---------------
Il n'est pas nécéssaire de réussir pour persévérer.
n°515487
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 16-09-2003 à 10:16:34  profilanswer
 

warp a écrit :

Ah oui, petite précision
 
la BD tourne sur un ordi,
et je teste le script sur un autre.....
(vous l'aurez remarqué avec les messages d'erreur)

ha ben dans ce cas,il faut pas mettre c:\ mais http://ip_de_ordi/image.truc

n°515489
warp
Posté le 16-09-2003 à 10:21:04  profilanswer
 

Dans le cas d'un ordi qui met ses fichiers
à disposition via un serveur web,
 
mais si je veux uploder un fichier sur un serveur....?


---------------
Il n'est pas nécéssaire de réussir pour persévérer.
n°515535
belgique
Posté le 16-09-2003 à 11:21:18  profilanswer
 

Faudrait pas faire un stripslashes sur le chemin de tes images? Le \ a été échapé on dirait.

Citation :

C:\\bg_header2.gif


Message édité par belgique le 16-09-2003 à 11:22:02
n°515558
dropsy
et bonne chance surtout...
Posté le 16-09-2003 à 12:09:09  profilanswer
 

warp a écrit :

Dans le cas d'un ordi qui met ses fichiers
à disposition via un serveur web,
 
mais si je veux uploder un fichier sur un serveur....?


 
euh si tu veux uploader le fichier vers le serveur, l'adresse ne peut pas être c:\\etc... il faut que tu passes par un formulaire pour envoyer ton fichiersur le serveur (1ère étape) et ensuite l'insérer dans ta base.
 
edit: ah bah non, tu passes déjà par un formulaire, mais à quoi correspond imgfile??


Message édité par dropsy le 16-09-2003 à 12:10:22
n°515646
warp
Posté le 16-09-2003 à 13:54:16  profilanswer
 

J'ai la réponse (mais pas encore l'explication)
 
il faut utiliser :

Code :
  1. <form method="POST" action="<?= $_SERVER["PHP_SELF"] ?>" enctype="multipart/form-data">


 
et non pas ce que j'avais trouvé sur le premier exemple :

Code :
  1. <form method="POST" action="<?= $_SERVER["PHP_SELF"] ?>" enctype="application/x-www-form-urlencoded">


 
OK c'est normal, vu l'explication :
http://www.w3.org/TR/REC-html40/in [...] ntent-type


---------------
Il n'est pas nécéssaire de réussir pour persévérer.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] insérer une image dans MySql

 

Sujets relatifs
[PHP] Question toute bete sur GET[PHP]1 ptit coup de main pour une insertion dans un fichier svp [OK]
MySQL erreur de syntaxe[PHP] pb retour de formulaire -> int needed
[PHP] Afficher le résultat d'une grosse requête ?[PHP] Sauvegarder le résultat d'une requête dans un fichier excel ?
[PHP & MYSQL] Utiliser une fonction PHP dans un LONGTEXT MySQL !Aide requete MySQL
[ PHP ] PHP et Feuille de Style CSS 
Plus de sujets relatifs à : [PHP] insérer une image dans MySql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR