Bonjours,
J'ai un petit problème, je stock des photos dans un champs blob de ma table et je n'arrive pas a les afficher.
voici ma table:
CREATE TABLE `ploopi_mod_annuaire_photo` (
`id_photo` INT NOT NULL AUTO_INCREMENT ,
`nom` VARCHAR(50) NOT NULL ,
`desc` VARCHAR(100) NOT NULL ,
`photo` BLOB NOT NULL ,
`type` VARCHAR(25) NOT NULL ,
PRIMARY KEY (`id_img`)
)
que je remplis comme il suit :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <html> <head> <title>Envoyer une image</title> </head> <body> <h1>Envoyer une photo</h1> <form enctype="multipart/form-data" action="traitement.php" method="post"> <input type="text" name="nom" size="50" /> <input type="text" name="desc" size="100" /> <input type="file" name="photo" /> <input type="submit" name="validation" value="Envoyer" /> </form> </body> </html>
traitement.php:
Jusque la pas de soucis les photo sont bien enregistré dans la base par contre impossible de les afficher, voici mon code pour l'affichage:
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <?php if(isset($_POST['validation'])) { if(!is_uploaded_file($_FILES['photo']['tmp_name'])) { echo 'Un problème est survenu durant l opération. Veuillez réessayer !'; } else { $extensions = array('.png', '.gif', '.jpg', '.jpeg'); $extension = strrchr($_FILES['photo']['name'], '.'); if(!in_array($extension, $extensions)) { echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.'; } else { define('MAXSIZE', 300000); if($_FILES['image']['size'] > MAXSIZE) { echo 'Votre image est supérieure à la taille maximale de '.$maxtaille.' octets'; } else { //on se connecte $connexion = mysql_connect("localhost", "stagiaire", "stagiaire") or die (mysql_error()); $database = mysql_select_db("stagiaire2") or die (mysql_error()); $photo = mysql_escape_string(file_get_contents($_FILES['photo']['tmp_name'])); mysql_query("INSERT INTO ploopi_mod_annuaire_photo VALUES('', '".$_POST[nom]."', '".$_POST[desc]."', '".$photo."', '".$_FILES[photo][type]."')") or die (mysql_error()); mysql_close(); echo 'L insertion s est bien déroulée !'; } } } } ?>
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <?php if(isset($_GET['id_photo'])) { $connexion = mysql_connect("localhost", "stagiaire", "stagiaire") or die (mysql_error()); $database = mysql_select_db("stagiaire2")or die (mysql_error()); $apercu = mysql_query("SELECT id_photo, type, photo FROM ploopi_mod_annuaire_photo WHERE id_photo =1"); $reponse = mysql_fetch_assoc($apercu); if(!$reponse[id_photo]) { echo 'L image n existe pas !'; } else { header ("Content-type: ".$reponse[type]); echo $reponse[photo]; } } else { echo 'Vous n avez pas sélectionné d image !'; } ?>
dans ma requête je l'oblige a chercher la photo stocké a l'id 1, pour tester. Et malgré cela il me resoort a chaque fois que je n'ai aps d'image sélectionné.(le dernière echo)
j'utilise des lien dans un premier temps pour visualiser les photos :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php $affichage = mysql_query("SELECT id_photo, nom FROM ploopi_mod_annuaire_photo") or die (mysql_error ()); while($result = mysql_fetch_array($affichage)) { echo '<a href="affiche.php?id='.$result[id_photo].'">'.$result[nom].'</a>'; } ?>
Et comme dit précédement les liens me renvoie a chaque fois vers le message :"Vous n avez pas sélectionné d image !".
Donc si une personne aurais la solution.
Merci.
Partager