begin process at 2012 05 31 00:07:38
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

inerrer une photo dans une base de donne mysql et afficher les photos


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

inerrer une photo dans une base de donne mysql et afficher les photos

mercredi 1 juin 2011 à 15:35:21 | inerrer une photo dans une base de donne mysql et afficher les photos

msi079

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 je click sur envoyer rien ne s'inserre dans la base de donnée .
de plus rien ne s'affiche duand j'execute apercu .on met met :Vous n avez pas sélectionné d image !

voici 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>
jeudi 2 juin 2011 à 21:56:17 | Re : inerrer une photo dans une base de donne mysql et afficher les photos

cod57

bonsoir

ton champs dans la table est de type blob ?
est si c'est le cas as tu quelques chose dans
la base dans le dit champs

pourquoi ne pas uploader l'image dans un répertoire et mettre le lien
dans la base tu gagnes de la place dans la table


Bonne programmation !
jeudi 2 juin 2011 à 22:13:53 | Re : inerrer une photo dans une base de donne mysql et afficher les photos

msi079

oui le champs est du type blob .
et il y a bien quelque chose dedans .
aidez moi svp
jeudi 2 juin 2011 à 23:57:28 | Re : inerrer une photo dans une base de donne mysql et afficher les photos

cod57

re
voilà j'ai bricolé ça
ça fonctionne tu as plus
qu'a adapter
a++

Code PHP :
<?php
/*
-- phpMyAdmin SQL Dump
-- version 3.2.0.1
-- http://www.phpmyadmin.net
--
-- Serveur: localhost
-- Généré le : Jeu 02 Juin 2011 à 23:52
-- Version du serveur: 5.1.36
-- Version de PHP: 5.2.11

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Base de données: `a`
--

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

--
-- Structure de la table `upload`
--

CREATE TABLE IF NOT EXISTS `upload` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(30) NOT NULL,
  `type` varchar(30) NOT NULL,
  `size` int(11) NOT NULL,
  `content` mediumblob NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Contenu de la table `upload`
--
*/

if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
{
$fileName = $_FILES['userfile']['name'];
$tmpName  = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];

$fp      = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);

if(!get_magic_quotes_gpc())
{
    $fileName = addslashes($fileName);
}
mysql_connect('localhost','root','');
mysql_select_db('a');
$query = "INSERT INTO upload (name, size, type, content ) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content')";
mysql_query($query) or die('Error, query failed'); 
mysql_close();
echo "<br>File $fileName uploaded<br>";
} 
?>
<html>
<head>
<title>Download File From MySQL</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form method="post" action="" enctype="multipart/form-data">
<table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
<tr> 
<td width="246">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000">
<input name="userfile" type="file" id="userfile"> 
</td>
<td width="80"><input name="upload" type="submit"
 class="box" id="upload" value=" Upload "></td>
</tr>
</table>
</form>

<?php
mysql_connect('localhost','root','');
mysql_select_db('a');
$query = "SELECT id,name FROM upload";
$result = mysql_query($query) or die('Error, query failed');
if(mysql_num_rows($result) == 0)
{
echo "Database is empty <br>";
} 
else
{
while(list($id,$name) = mysql_fetch_array($result))
{
echo '<img src="voir.php?id='.$id.'" />';
echo '<br />';
echo '<a href="voir.php?id='.$id.'">'.$name.'</a> <br>';
echo '<hr>';
}
}
mysql_close(); 
?>
</body>
</html>



voir.php

Code PHP :
<?php
if(isset($_GET['id'])){
$id=$_GET['id'];
mysql_connect('localhost','root','');
mysql_select_db('a');
$query="SELECT name, type, size, content FROM upload WHERE id='".$id."' limit 1";
$result = mysql_query($query) or die('Error, query failed');
$file=list($name, $type, $size, $content)=mysql_fetch_array($result);
mysql_close();
//header("Content-length: $size");
//header("Content-type: $type");
//header("Content-Disposition: attachment; filename=$name");
//echo $content;
//print_r($file);
echo $file[3];
}else{
}  
?>

Bonne programmation !
jeudi 16 juin 2011 à 18:41:56 | Re : inerrer une photo dans une base de donne mysql et afficher les photos
jeudi 16 juin 2011 à 18:42:23 | Re : inerrer une photo dans une base de donne mysql et afficher les photos

nejibgunner

oui meme probleme pr moi


Cette discussion est classée dans : base, mysql, image, escape, description


Répondre à ce message

Sujets en rapport avec ce message

MySQL et images [ par Marneus Calgar ] SalutJ'aimerais savoir s'il est possible de stocker des images dans une table MySQL et d'y accéder depuis une page PHP. En fait, je voudrais faire un MySQL et images [ par Marneus Calgar ] SalutJ'aimerais savoir s'il est possible de stocker des images dans une table MySQL et d'y accéder depuis une page PHP. En fait, je voudrais faire un insertion d'images sur MySQL [ par Euskalor ] Salut à toutes et à tous !Je souhaiterais savoir comment faire pour mettre une image dans une base de donnée MySQL via un code PHP. Etant débutant en Affichage d'image depuis ma bdd [ par bruce207 ] Bonjour,j'ai lu tout d'abord que pour stocker une image dans une base mysql on pouvait stocker l'adresse de l'image dans la base. J'ai donc créer une afficher une image selectionnee dans une base de donnees [ par fadoua123 ] salut voici mon probleme j ai une base ou il y a des images et son id et d autres champs et je dois selectioner des images d apres une condition je ve Image / MySQL / php [ par hazkaal ] Bonjour !Je bosse sur un site et j'ai un probleme au niveau de laffichage d'images...Je m'explique :L'utilisateur upload une image. Cette image est st insertion image dans une base MYSQL [ par yamyoung ] Bonjour,je suis nouveau dans le domaine de php, et on est entrain de préparer un projet(site web).Mon problème c que je ne sais pas comment intégrer u A l'aide c'est urgent [ par OuntaMalek ] Bonjour,je suis débutant en PHP et je travaille sur un projet scolaire de création d'un site web. Alors j'ai problème:j'ai une table dans la base de d Base de données Mysql : Inserer une image avec lien [ par freeforfree ] Bonjour, je suis nouveau en php mysql j'ai une image sur laquelle je dois cliquer pour entendre une chanson. je voudrai de l'aide comment choisir les galerie photo avec php [ par stophking ] bonjour : je suis entrain de créer une galerie photo avec php/mysql et j'aimeria bien que vous me corriger le code si il ya des fautes, et une chose q


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales