Comment afficher une image dans bdd php/mysql
je voudrai savoir comment comment je fais pour que quand une personne veut upoader une image (parcourir) dans un champ de la table (de la bdd) par un lien ver l'image sur le pc ou directement sur la table (blob),
et ensuite pouvoir l'afficher sur un page php.
Merci
Configuration: Windows Vista Internet Explorer 7.0
27 réponses
Le fil porte sur l’upload d’image via un formulaire et l’affichage en PHP, entre stocker l’image en BLOB ou la conserver sur le serveur et n’enregistrer que son nom. Plusieurs réponses préconisent de stocker les fichiers sur le serveur et d’enregistrer uniquement le nom ou le chemin dans la BDD, puis de reconstruire l’URL lors de l’affichage. Des exemples évoquent move_uploaded_file, la construction du chemin et l’utilisation d’un dossier dédié, mais des problèmes apparaissent fréquemment, comme des chemins faux ou des variables non définies lors de l’affichage. En cas de confusion, certains échanges évoquent aussi des questions de permissions et de format, montrant l’importance de synchroniser emplacement réel et référence en base pour un affichage fiable.
-
ok merci
c pas grave jver essayer -
Contributeurtu ne serais pas un peu têtu par hasard ?
moi je laisse tomber, débrouille toi avec la faq ou avec une autre bonne volonté.
-
enfet c'est pas vraiment une croix rouge
c'est un truk avec un carre rouge et triangle bleu et un cecle vert mais je penseke le repertoire est bon -
Contributeursi il y a une croix rouge c'est que l'url est fausse.
le code ne sert à rien pour le moment, il faut savoir où sont enregistrées les images et où est enregistré le document qui affiche les images.
comme ça on pourra te dire quelle url il faut utiliser.
-
non il est bon normalement atend jte remontre le code :
ajout.php:
<?php include("connect.php"); $description=$_POST["description"]; // on recupere la description $nom=$_FILES["file"]["name"]; // on recupere le nom de l'image avec son extension $taille=$_FILES["file"]["size"]; //optionnelle, mnt vous avez la taille list($name, $ext) = explode(".", $nom); // on separe le nom de l'image de son extension $ext=".".$ext; // on rajoute un . devant l'extention $chemin = "./repertoire/".$nom; // ici c'est l'endroit ou va etre stocker le chemin de votre texte ou image ou autre ici c'est dans ==> répertoire. move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$chemin); // on envoie le fichier a l'endroit voulu mysql_query("INSERT INTO fichier (file, titre, description, taille) VALUES('$nom','$name','$description', '$taille');"); // et on termine en envoyant les donné dans la base mysql echo 'Good Job Sir '; mysql_close(); ?> fichier.php : <?php include("connect.php"); $date = gmdate("H\hi"); echo $date; // aller je le laisse pour le plaisir de tjs savoir l'heure ?> <form enctype="multipart/form-data" method="post" action="ajout.php"> <br /> Image: <input name="file" type="file"> <br /> <br /> Description <br /> <textarea name="description"> </textarea> <br /> <br /> <input type="submit" value="valider"> </form> <html> <head><title>.:: Enjoy BabY ::.</title></head> </html> <?php mysql_close(); ?> ajout.php : <?php include("connect.php"); $description=$_POST["description"]; // on recupere la description $nom=$_FILES["file"]["name"]; // on recupere le nom de l'image avec son extension $taille=$_FILES["file"]["size"]; //optionnelle, mnt vous avez la taille list($name, $ext) = explode(".", $nom); // on separe le nom de l'image de son extension $ext=".".$ext; // on rajoute un . devant l'extention $chemin = "./repertoire/".$nom; // ici c'est l'endroit ou va etre stocker le chemin de votre texte ou image ou autre ici c'est dans ==> répertoire. move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$chemin); // on envoie le fichier a l'endroit voulu mysql_query("INSERT INTO fichier (file, titre, description, taille) VALUES('$nom','$name','$description', '$taille');"); // et on termine en envoyant les donné dans la base mysql echo 'Good Job Sir '; mysql_close(); ?>
et ma soeur
CREATE TABLE `fichier` (
`id` int(3) NOT NULL auto_increment,
`file` varchar(25) NOT NULL default '',
`titre` varchar(25) NOT NULL,
`description` longtext NOT NULL,
`taille` varchar(10) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
et sa afiiche quand je lmet le afficher.php une icone image sas la metre -
Contributeursalut,
c'est que le chemin vers l'image est faux.
dans quel dossier as-tu enregistré tes images ?
où se situe le fichier qui affiche l'image ?
-
g plus lereur mais ca affiche un carre avec une image avec une croix;;;;;;;;.;;;;;;;
-
Contributeurah ba vi, mais je te fais pas du code clé en main !
regarde le code, il faut l'adapter !!!
tu n'as pas de champ 'nom'…echo '<li><img scr="repertoire/'.$row['file'].'" /></li>'."\n";
-
L EREUR C Notice: Undefined index: nom in d:\program files\easyphp1-8\www\pho\afficher.php on line 11
-
deja ca conte bien puisque je vois les 6 erreurs des 6 photos ke g uploader
mais enfette ca mfer une erreur sur cette ligne echo '<li><img scr="/repertoire/'.$row['nom'].'" /></li>'."\n"; -
lol javer carement zaper
-
Contributeurmais il faut ton inclusion de paramètres de connexion !
include("connect.php");
je mets juste le bout de code à corriger…
-
creattion de la table:
CREATE TABLE `fichier` (
`id` int(3) NOT NULL auto_increment,
`file` varchar(25) NOT NULL default '',
`titre` varchar(25) NOT NULL,
`description` longtext NOT NULL,
`taille` varchar(10) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -
euh ptit probleme
Warning: mysql_query(): Accès refusé pour l'utilisateur: 'ODBC'@'@localhost' (mot de passe: NON) in d:\program files\easyphp1-8\www\pho\afficher.php on line 2
Warning: mysql_query(): A link to the server could not be established in d:\program files\easyphp1-8\www\pho\afficher.php on line 2
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in d:\program files\easyphp1-8\www\pho\afficher.php on line 3
merci -
Contributeurah oui mais ton script est incomplet !
si tu veux mettre tes images dans une liste ('<ul>').<?php $result = mysql_query("SELECT * FROM fichier"); if( mysql_num_rows( $result ) > 0 ) { echo "<ul>\n"; while( $row = mysql_fetch_assoc( $result ) ) { echo '<li><img scr="repertoire/'.$row['nom'].'" /></li>'."\n"; } echo "</ul>\n"; } ?> -
je sais pas comment lafficher les images dans une liste
-
message derreur:
Notice: Undefined variable: nom in d:\program files\easyphp1-8\www\pho\afficher.php on line 7 -
Contributeuret c'est quoi le problème ?
colles nous le message d'erreur.
-
g fer un fichier
afficher.php:
<?php
include("connect.php");
mysql_query("SELECT * FROM fichier");
echo "<p><img scr=\"repertoire/$nom\" /></p>";
mysql_close();
?>
mais il mdise ke ya un probleme -
ok jver essayer et jte
et merci de ton aide .....
- 1
- 2