Prebleme d'affichage des images dans un champ blob de mysql
azertsissmail
Messages postés3Date d'inscriptionmardi 15 avril 2014StatutMembreDernière intervention 3 août 2014
-
Modifié par Whismeril le 3/08/2014 à 22:23
jordane45
Messages postés38138Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention17 avril 2024
-
4 août 2014 à 00:27
Bonjour je développe actuellement un site web avec le language de programmation php, j'ai créée une base de données dans mysql avec un tableau qui contient un champ "image" de type "blob", et aprés j'ai créé un formulaire en php pour parcourir mes images et l'enregistrer dans la base de données, ca a bien marché, mais quand j'ai crée le code php pour récupérer les images et les afficher, j'ai trouver un probléme au niveau de l'afficahe de l'image, il parait une page web comme ci-dissous :
???=????;???????;Pi?J??????@?M?LK? ?????wB?????Wy?????8???1?J?x0@=?r?b,?~?ezoa?4??p=??,WuK?????+??U??5??~)?V??.*T?P)??E#??+j ??:?e?5??{?B?r?,?J??L ?SE&?=?A???%u
voici le code que j'ai utiliser pour parcourir les image :
<form enctype="multipart/form-data" action="traitements.php" method="post">
<p>
<label for="nom">Nom : </label><input type="text" name="nom" id="nom" /><br />
<label for="description">Description : </label><textarea name="description" id="description" rows="10" cols="50"></textarea><br />
<label for="image">Image : </label><input type="file" name="image" id="image" /><br />
<label for="validation">Valider : </label><input type="submit" name="validation" id="validation" value="Envoyer" />
</p>
</form>
</body>
<?php
if(isset($_POST['validation'])) {
//Indique si le fichier a été téléchargé
if(!is_uploaded_file($_FILES['image']['tmp_name']))
echo 'Un problème est survenu durant l opération. Veuillez réessayer !';
else {
//liste des extensions possibles
$extensions = array('/png', '/gif', '/jpg', '/jpeg');
//récupère la chaîne à partir du dernier / pour connaître l'extension
$extension = strrchr($_FILES['image']['type'], '/');
//vérifie si l'extension est dans notre tableau
if(!in_array($extension, $extensions))
echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
else {
//on définit la taille maximale
define('MAXSIZE', 300000);
if($_FILES['image']['size'] > MAXSIZE)
echo 'Votre image est supérieure à la taille maximale de '.MAXSIZE.' octets';
else {
//connexion à la base de données
try {
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
} catch (Exception $e) {
exit('Erreur : ' . $e->getMessage());
}
//Lecture du fichier
$image = file_get_contents($_FILES['image']['tmp_name']);
$req = $bdd->prepare("INSERT INTO images(nom, description, img, extension) VALUES(:nom, :description, :image, :type)");
$req->execute(array(
'nom' => $_POST['nom'],
'description' => $_POST['description'],
'image' => $image,
'type' => $_FILES['image']['type']
));
echo 'L\'insertion s est bien déroulée !';
}
}
}
}
?>
et pour l'affichage :
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test1', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$reponse = $bdd->query('SELECT * FROM images');
while ($donnees = $reponse->fetch())
{
?>
<table id="table1" border="1">
<tr>
<td>
<?php
echo ' <img scr="'.$donnees['img'].'">';
?>
</td>
</tr>
</table>
<?php
}
$reponse->closeCursor();
?>
s'il vous plait aider moi à résoudre mon probléme et merci.
A voir également:
Prebleme d'affichage des images dans un champ blob de mysql