Se connecter / S'enregistrer
Votre question
Fermé

Afficher une image stockée dans ma base de donnée

Tags :
  • photo
  • Programmation
Dernière réponse : dans Programmation
1 Juin 2011 20:27:26

salut a tous !
je voudrais que les visiteurs de mon site puisseent enregeistrer leur photo dans la base de donnée et ensuite afficher ses photos .
mais je n'arrive pas.
alors je voudrais une aide svp .
merci de bien vouloir m'aider .
NB: quand j'execute le code aperçu rien ne s'affiche et je vois que le message

vici mon code :


------------------------------------------------------------------------------------------

image.php
-------------------------------------------------------------------------------------------
<head>
<title>Envoyer une image</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
label {
display:block;
width:150px;
float:left;
}
</style>
</head>

<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 {
//on se connecte (remplacer les paramètres de connexion)
$connexion = mysql_connect("localhost", "root", "") or exit (mysql_error());
$database = mysql_select_db("go&ga") or exit (mysql_error());

//récupération des infos saisies
$nom = mysql_escape_string($_POST['nom']);
$description = mysql_escape_string($_POST['description']);

//Lecture du fichier. On doit utiliser la fonction mysql_escape_string car les données binaires contiennent des caractères spéciaux.
$image = mysql_escape_string(file_get_contents($_FILES['image']['tmp_name']));

//Il ne reste qu'à insérer tout ça dans notre table.
mysql_query("INSERT INTO images(nom, description, img, extension) VALUES('".$nom."', '".$description."', '".$image."', '".$_FILES['image']['type']."')") or exit (mysql_error());
mysql_close();
echo '<h3>L insertion s\'est bien déroulée !</h3>';
}
}
}
}
?>

<h1>Envoyer une image</h1>
<form enctype="multipart/form-data" action="" 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>
<form action="galerie.php" method="post">
<p>
<input type="submit" name="validation" value="image" />
</p>
</form>

</body>
</html>


--------------------------------------------------------------------------------------
apercu.php

-------------------------------------------------------------------------------------------

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>

<body>

<?php
//si nous avons une image
if(!empty($_GET['id_img'])) {

//connexion à la base de données
$connexion = mysql_connect("localhost", "root", "") or exit (mysql_error());
$database = mysql_select_db("go&ga")or exit (mysql_error());

//on sécurise notre donnée
$idImg = intval($_GET['id_img']);

//la requète qui récupère l'image à partir de l'identifiant
$apercu = mysql_query("SELECT extension, img FROM images WHERE id_img = ".$idImg) or exit (mysql_error());

//si le résultat est différent de 1
if(mysql_num_rows($apercu) != 1)
echo 'L image n existe pas !';
else {
//on stocke les données dans un tableau
$reponse = mysql_fetch_assoc($apercu);
//on indique qu'on affiche une image
header ("Content-type: ".$reponse['extension']);
//on affiche l'image en elle même
echo $reponse['img'];
}
mysql_close();
} else
echo 'Vous n avez pas sélectionné d image !';
?>


</body>

</html>

-------------------------------------------------------------------------------------------------
galerie.php
--------------------------------------------------------------------------------------------------

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>
</head>

<body>

<?php
//si nous avons une image
if(!empty($_GET['id_img'])) {

//connexion à la base de données
$connexion = mysql_connect("localhost", "root", "") or exit (mysql_error());
$database = mysql_select_db("go&ga")or exit (mysql_error());

//on sécurise notre donnée
$idImg = intval($_GET['id_img']);

//la requète qui récupère l'image à partir de l'identifiant
$apercu = mysql_query("SELECT extension, img FROM images WHERE id_img = ".$idImg) or exit (mysql_error());

//si le résultat est différent de 1
if(mysql_num_rows($apercu) != 1)
echo 'L image n existe pas !';
else {
//on stocke les données dans un tableau
$reponse = mysql_fetch_assoc($apercu);
//on indique qu'on affiche une image
header ("Content-type: ".$reponse['extension']);
//on affiche l'image en elle même
echo $reponse['img'];
}
mysql_close();
} else
echo 'Vous n avez pas sélectionné d image !';
?>


</body>

</html>

Autres pages sur : afficher image stockae base donnae

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS