Parcourir, stocker et afficher une image :php
Résolu
athena21
Messages postés
75
Date d'inscription
Statut
Membre
Dernière intervention
-
athena21 Messages postés 75 Date d'inscription Statut Membre Dernière intervention - 28 mai 2010 à 18:29
athena21 Messages postés 75 Date d'inscription Statut Membre Dernière intervention - 28 mai 2010 à 18:29
A voir également:
- Afficher une image en php à partir d'une base de données
- Comment faire une recherche à partir d'une photo - Guide
- Créer une icone à partir d'une image - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Légender une image - Guide
- Créer une vidéo à partir de photos windows 10 - Guide
11 réponses
Essaie ça:
<?php require_once('connect.php');
if(isset($_POST['submit'])){// Si le formulaire est soumis
// *************************Fonction pour l'upload ***************************************
$dossier = 'upload/';// On donne une valeur aleatoire au fichier qu'on va uploader et on teste si ce nom existe deja
do {
$s = rand();
} while (is_file($dossier.$s.'.jpg') || is_file($dossier.$s.'.gif')); //$s est le nom du fichier sans l'extension
$temp_name=$_FILES['fichier']['tmp_name'];
$file_name=$_FILES['fichier']['name'];
$file_type=$_FILES['fichier']['type'];
// On defini les types de fichiers autorisés, ici seuls les jpg et les png sont acceptés
$AllowedExtensions= array('image/jpeg', 'image/png', 'image/gif') ;
$Extension=strrchr($file_name,'.');
$Extension=substr($Extension,1);
$Extension=strtolower($Extension);
if((count($AllowedExtensions) > 0 && in_array($file_type, $AllowedExtensions))){
if(copy($temp_name,$dossier.$s.'.'.$Extension)){
$up = true;
$msg = 'Le fichier est valide';//'Le fichier est valide';
$nomdufichier = $s.'.'.$Extension; // On récupere le nom du fichier uploadé
}
}else {
$up = false;
$msg = 'Erreur upload';}
//******************Fin de l'upload **************************************
if ($up == true){
$categorie = addslashes($_POST['select']); // Recuperation de la valeur de la categorie
$nom = addslashes($_POST['nompro']); // Recuperation du nom
$description = addslashes($_POST['descripro']); // Description
$photo = $dossier.$nomdufichier; // Chemin du fichier uploadé
$sql = "INSERT INTO 'produits' ('id_pro' ,'nom_pro' ,'description' ,'photo' ,'id_cat' ,'desig')VALUES (
NULL , '$nom' , '$description' , '$photo' , '$categorie' , '')"; // Construction de la requete
$result = mysql_query ($sql); // Insertion des valeurs
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8 Unicode" />
<title>Ajouter un porduit</title>
</head>
<body>
<h1 align="center">Ajout d'un porduit</h1>
<form action="" method ="POST" name="form3" enctype="multipart/form-data">
<table width="530" border="1" align="center">
<tr>
<td width="160" align="center">nom de la catégorie</td>
<td width="120" align="center">description</td>
<td width="100" align="center">photo:</td>
<td width="150" align="center">nom du produit</td>
</tr>
<tr>
<td align="center"><select name="select">
<?php
do {
?>
<option value="<?php echo $row_cat['id_cat']?>"><?php echo $row_cat['desig']?></option>
<?php
} while ($row_cat = mysql_fetch_assoc($cat));
$rows = mysql_num_rows($cat);
//echo $rows;
if($rows > 0) {
mysql_data_seek($cat,$rows);
$row_cat = mysql_fetch_assoc($cat);
}
?>
</select></td>
<td align="center"><input name="descripro" type="text" /></td>
<td align="center"><input name="fichier" type="file" /><br></td>
<td align="center"><input name="nompro" type="text" /></td>
</tr>
<td colspan="4" align="center"><input type="submit" name="submit" value="?????"/></td>
</tr>
<tr>
</table>
<input type="hidden" name="MM_insert" value="form3">
</form>
</body>
</html>
<?php require_once('connect.php');
if(isset($_POST['submit'])){// Si le formulaire est soumis
// *************************Fonction pour l'upload ***************************************
$dossier = 'upload/';// On donne une valeur aleatoire au fichier qu'on va uploader et on teste si ce nom existe deja
do {
$s = rand();
} while (is_file($dossier.$s.'.jpg') || is_file($dossier.$s.'.gif')); //$s est le nom du fichier sans l'extension
$temp_name=$_FILES['fichier']['tmp_name'];
$file_name=$_FILES['fichier']['name'];
$file_type=$_FILES['fichier']['type'];
// On defini les types de fichiers autorisés, ici seuls les jpg et les png sont acceptés
$AllowedExtensions= array('image/jpeg', 'image/png', 'image/gif') ;
$Extension=strrchr($file_name,'.');
$Extension=substr($Extension,1);
$Extension=strtolower($Extension);
if((count($AllowedExtensions) > 0 && in_array($file_type, $AllowedExtensions))){
if(copy($temp_name,$dossier.$s.'.'.$Extension)){
$up = true;
$msg = 'Le fichier est valide';//'Le fichier est valide';
$nomdufichier = $s.'.'.$Extension; // On récupere le nom du fichier uploadé
}
}else {
$up = false;
$msg = 'Erreur upload';}
//******************Fin de l'upload **************************************
if ($up == true){
$categorie = addslashes($_POST['select']); // Recuperation de la valeur de la categorie
$nom = addslashes($_POST['nompro']); // Recuperation du nom
$description = addslashes($_POST['descripro']); // Description
$photo = $dossier.$nomdufichier; // Chemin du fichier uploadé
$sql = "INSERT INTO 'produits' ('id_pro' ,'nom_pro' ,'description' ,'photo' ,'id_cat' ,'desig')VALUES (
NULL , '$nom' , '$description' , '$photo' , '$categorie' , '')"; // Construction de la requete
$result = mysql_query ($sql); // Insertion des valeurs
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8 Unicode" />
<title>Ajouter un porduit</title>
</head>
<body>
<h1 align="center">Ajout d'un porduit</h1>
<form action="" method ="POST" name="form3" enctype="multipart/form-data">
<table width="530" border="1" align="center">
<tr>
<td width="160" align="center">nom de la catégorie</td>
<td width="120" align="center">description</td>
<td width="100" align="center">photo:</td>
<td width="150" align="center">nom du produit</td>
</tr>
<tr>
<td align="center"><select name="select">
<?php
do {
?>
<option value="<?php echo $row_cat['id_cat']?>"><?php echo $row_cat['desig']?></option>
<?php
} while ($row_cat = mysql_fetch_assoc($cat));
$rows = mysql_num_rows($cat);
//echo $rows;
if($rows > 0) {
mysql_data_seek($cat,$rows);
$row_cat = mysql_fetch_assoc($cat);
}
?>
</select></td>
<td align="center"><input name="descripro" type="text" /></td>
<td align="center"><input name="fichier" type="file" /><br></td>
<td align="center"><input name="nompro" type="text" /></td>
</tr>
<td colspan="4" align="center"><input type="submit" name="submit" value="?????"/></td>
</tr>
<tr>
</table>
<input type="hidden" name="MM_insert" value="form3">
</form>
</body>
</html>
c déjà mentionné dans le msg prive voila encore une fois:
la table des produits jlai nommé produits avec les champs: id_pro,nom_pro,id_cat,desig,desciption et photo (id_cat est une clé etrangere qiu appartient a une autre autre table:cat (catégorie)) voici le code:
la table des produits jlai nommé produits avec les champs: id_pro,nom_pro,id_cat,desig,desciption et photo (id_cat est une clé etrangere qiu appartient a une autre autre table:cat (catégorie)) voici le code:
Voici le code final
Essaie de le comprendre, j'ai mis les commentaires pour qu'il soit comprehensible
<?php require_once('connect.php');
if(isset($_POST['submit'])){// Si le formulaire est soumis
// *************************Fonction pour l'upload ***************************************
$dossier = 'upload/';// On donne une valeur aleatoire au fichier qu'on va uploader et on teste si ce nom existe deja
do {
$s = rand();
} while (is_file($dossier.$s.'.jpg') || is_file($dossier.$s.'.gif')); //$s est le nom du fichier sans l'extension
$temp_name=$_FILES['fichier']['tmp_name'];
$file_name=$_FILES['fichier']['name'];
$file_type=$_FILES['fichier']['type'];
// On defini les types de fichiers autorisés, ici seuls les jpg et les png sont acceptés
$AllowedExtensions= array('image/jpeg', 'image/png', 'image/gif') ;
$Extension=strrchr($file_name,'.');
$Extension=substr($Extension,1);
$Extension=strtolower($Extension);
if((count($AllowedExtensions) > 0 && in_array($file_type, $AllowedExtensions))){
if(copy($temp_name,$dossier.$s.'.'.$Extension)){
$up = true;
$msg = 'Le fichier est valide';//'Le fichier est valide';
$nomdufichier = $s.'.'.$Extension; // On récupere le nom du fichier uploadé
}
}else {
$up = false;
$msg = 'Erreur upload';}
//******************Fin de l'upload **************************************
if ($up == true){
$categorie = addslashes($_POST['select']); // Recuperation de la valeur de la categorie
$nom = addslashes($_POST['nompro']); // Recuperation du nom
$description = addslashes($_POST['descripro']); // Description
$photo = $dossier.$nomdufichier; // Chemin du fichier uploadé
$sql = "INSERT INTO 'produits' ('id_pro' ,'nom_pro' ,'description' ,'photo' ,'id_cat' ,'desig')VALUES (
NULL , '$nom' , '$description' , '$photo' , '$categorie' , '')"; // Construction de la requete
$result = mysql_query ($sql); // Insertion des valeurs
}
echo $msg.'<br />';}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8 Unicode" />
<title>Ajouter un porduit</title>
</head>
<body>
<h1 align="center">Ajout d'un porduit</h1>
<form action="" method ="POST" name="form3" enctype="multipart/form-data">
<table width="530" border="1" align="center">
<tr>
<td width="160" align="center">nom de la catégorie</td>
<td width="120" align="center">description</td>
<td width="100" align="center">photo:</td>
<td width="150" align="center">nom du produit</td>
</tr>
<tr>
<td align="center"><select name="select">
<? $categories = mysql_query ("select * from 'cat'");
while ($row_cat = mysql_fetch_array($categories)){?>
<option value="<?php echo $row_cat['id_cat']?>"><?php echo $row_cat['desig']?></option>
<? }?>
</select></td>
<td align="center"><input name="descripro" type="text" /></td>
<td align="center"><input name="fichier" type="file" /><br></td>
<td align="center"><input name="nompro" type="text" /></td>
</tr>
<td colspan="4" align="center"><input type="submit" name="submit" value="?????"/></td>
</tr>
<tr>
</table>
<input type="hidden" name="MM_insert" value="form3">
</form>
</body>
</html>
<?php
//mysql_free_result($recordproduits);
?>
Essaie de le comprendre, j'ai mis les commentaires pour qu'il soit comprehensible
<?php require_once('connect.php');
if(isset($_POST['submit'])){// Si le formulaire est soumis
// *************************Fonction pour l'upload ***************************************
$dossier = 'upload/';// On donne une valeur aleatoire au fichier qu'on va uploader et on teste si ce nom existe deja
do {
$s = rand();
} while (is_file($dossier.$s.'.jpg') || is_file($dossier.$s.'.gif')); //$s est le nom du fichier sans l'extension
$temp_name=$_FILES['fichier']['tmp_name'];
$file_name=$_FILES['fichier']['name'];
$file_type=$_FILES['fichier']['type'];
// On defini les types de fichiers autorisés, ici seuls les jpg et les png sont acceptés
$AllowedExtensions= array('image/jpeg', 'image/png', 'image/gif') ;
$Extension=strrchr($file_name,'.');
$Extension=substr($Extension,1);
$Extension=strtolower($Extension);
if((count($AllowedExtensions) > 0 && in_array($file_type, $AllowedExtensions))){
if(copy($temp_name,$dossier.$s.'.'.$Extension)){
$up = true;
$msg = 'Le fichier est valide';//'Le fichier est valide';
$nomdufichier = $s.'.'.$Extension; // On récupere le nom du fichier uploadé
}
}else {
$up = false;
$msg = 'Erreur upload';}
//******************Fin de l'upload **************************************
if ($up == true){
$categorie = addslashes($_POST['select']); // Recuperation de la valeur de la categorie
$nom = addslashes($_POST['nompro']); // Recuperation du nom
$description = addslashes($_POST['descripro']); // Description
$photo = $dossier.$nomdufichier; // Chemin du fichier uploadé
$sql = "INSERT INTO 'produits' ('id_pro' ,'nom_pro' ,'description' ,'photo' ,'id_cat' ,'desig')VALUES (
NULL , '$nom' , '$description' , '$photo' , '$categorie' , '')"; // Construction de la requete
$result = mysql_query ($sql); // Insertion des valeurs
}
echo $msg.'<br />';}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8 Unicode" />
<title>Ajouter un porduit</title>
</head>
<body>
<h1 align="center">Ajout d'un porduit</h1>
<form action="" method ="POST" name="form3" enctype="multipart/form-data">
<table width="530" border="1" align="center">
<tr>
<td width="160" align="center">nom de la catégorie</td>
<td width="120" align="center">description</td>
<td width="100" align="center">photo:</td>
<td width="150" align="center">nom du produit</td>
</tr>
<tr>
<td align="center"><select name="select">
<? $categories = mysql_query ("select * from 'cat'");
while ($row_cat = mysql_fetch_array($categories)){?>
<option value="<?php echo $row_cat['id_cat']?>"><?php echo $row_cat['desig']?></option>
<? }?>
</select></td>
<td align="center"><input name="descripro" type="text" /></td>
<td align="center"><input name="fichier" type="file" /><br></td>
<td align="center"><input name="nompro" type="text" /></td>
</tr>
<td colspan="4" align="center"><input type="submit" name="submit" value="?????"/></td>
</tr>
<tr>
</table>
<input type="hidden" name="MM_insert" value="form3">
</form>
</body>
</html>
<?php
//mysql_free_result($recordproduits);
?>
Bonjour,
Moi ce que je te conseil, c'est de faire une table "produits" dans ta table, avec au minimum les champs id, libelle, url, prix (tu peux en mettre d'autres selon tes tables si tu as des liens a faire).
Donc tu ajoutes un champ pour parcourir ton fichier :
Ensuite cherches sur internet un petit script pour uploader le fichier (vers un dossier bien spécifique) comme ca lorsque tu ajoutera ton lien de l'image dans ta base de données tu auras plus qu'a mettre comme lien l'acces a ton dossier/nom_de_ton_image.extension.
Désolé j'ai pas vraiment le temps ce matin de trop t'aider donc j'essaye de te mettre sur la piste.
Si personne ta répondu avant cette après midi, j'essayerais de repasser.
Bon courage.
Moi ce que je te conseil, c'est de faire une table "produits" dans ta table, avec au minimum les champs id, libelle, url, prix (tu peux en mettre d'autres selon tes tables si tu as des liens a faire).
Donc tu ajoutes un champ pour parcourir ton fichier :
Nom : <input type="text" name="libelle" value=""/><br> Fichier : <input type="file" name="fichier" value=""/><br> <input type="submit" name="upload" value="Ajouter article"/><br>
Ensuite cherches sur internet un petit script pour uploader le fichier (vers un dossier bien spécifique) comme ca lorsque tu ajoutera ton lien de l'image dans ta base de données tu auras plus qu'a mettre comme lien l'acces a ton dossier/nom_de_ton_image.extension.
Désolé j'ai pas vraiment le temps ce matin de trop t'aider donc j'essaye de te mettre sur la piste.
Si personne ta répondu avant cette après midi, j'essayerais de repasser.
Bon courage.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Est ce que tu peux me fournir la requete sql sui permet de la créer?
Elle est du genre: create table ....
merci
Elle est du genre: create table ....
merci
create table produits
(id_pro smallint auto_increment PRIMARY KEY,
nom_pro varchar (50),
description varchar(150),
photo varchar(255),
id_cat smallint,
desig varchar(30),
constraint c1 FOREIGN KEY(id_cat) references cat(id_cat)) ENGINE = innoDB
(id_pro smallint auto_increment PRIMARY KEY,
nom_pro varchar (50),
description varchar(150),
photo varchar(255),
id_cat smallint,
desig varchar(30),
constraint c1 FOREIGN KEY(id_cat) references cat(id_cat)) ENGINE = innoDB
pour la table catégorie:
CREATE TABLE cat
(id_cat smallint auto_increment PRIMARY KEY,
desig varchar(30)) ENGINE = innoDB
CREATE TABLE cat
(id_cat smallint auto_increment PRIMARY KEY,
desig varchar(30)) ENGINE = innoDB
Pour la connexion voici le code du fichier connect.php
<?php
$host='localhost'; //serveur
$login='root'; //login sql
$pass_db=''; // mot de pass sql
$database='pos'; // nom de la base
// connexion à la bdd
mysql_connect($host,$login,$pass_db) or die("Database connection failed!!<br>");
// selection de la base
$selectresult=mysql_select_db($database);
?>
J'ai essayé le code que j'ai posté, il marche.
Attention l'insertion dans la base de données ne se fait que si l'upload a eu lieu.
J'ai ajouté un affichage pour que tu puisse voir si l'upload est fait ou non:
<?php require_once('connect.php');
if(isset($_POST['submit'])){// Si le formulaire est soumis
// *************************Fonction pour l'upload ***************************************
$dossier = 'upload/';// On donne une valeur aleatoire au fichier qu'on va uploader et on teste si ce nom existe deja
do {
$s = rand();
} while (is_file($dossier.$s.'.jpg') || is_file($dossier.$s.'.gif')); //$s est le nom du fichier sans l'extension
$temp_name=$_FILES['fichier']['tmp_name'];
$file_name=$_FILES['fichier']['name'];
$file_type=$_FILES['fichier']['type'];
// On defini les types de fichiers autorisés, ici seuls les jpg et les png sont acceptés
$AllowedExtensions= array('image/jpeg', 'image/png', 'image/gif') ;
$Extension=strrchr($file_name,'.');
$Extension=substr($Extension,1);
$Extension=strtolower($Extension);
if((count($AllowedExtensions) > 0 && in_array($file_type, $AllowedExtensions))){
if(copy($temp_name,$dossier.$s.'.'.$Extension)){
$up = true;
$msg = 'Le fichier est valide';//'Le fichier est valide';
$nomdufichier = $s.'.'.$Extension; // On récupere le nom du fichier uploadé
}
}else {
$up = false;
$msg = 'Erreur upload';}
//******************Fin de l'upload **************************************
if ($up == true){
$categorie = addslashes($_POST['select']); // Recuperation de la valeur de la categorie
$nom = addslashes($_POST['nompro']); // Recuperation du nom
$description = addslashes($_POST['descripro']); // Description
$photo = $dossier.$nomdufichier; // Chemin du fichier uploadé
$sql = "INSERT INTO 'produits' ('id_pro' ,'nom_pro' ,'description' ,'photo' ,'id_cat' ,'desig')VALUES (
NULL , '$nom' , '$description' , '$photo' , '$categorie' , '')"; // Construction de la requete
$result = mysql_query ($sql); // Insertion des valeurs
}
echo $msg.'<br />';}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8 Unicode" />
<title>Ajouter un porduit</title>
</head>
<body>
<h1 align="center">Ajout d'un porduit</h1>
<form action="" method ="POST" name="form3" enctype="multipart/form-data">
<table width="530" border="1" align="center">
<tr>
<td width="160" align="center">nom de la catégorie</td>
<td width="120" align="center">description</td>
<td width="100" align="center">photo:</td>
<td width="150" align="center">nom du produit</td>
</tr>
<tr>
<td align="center"><select name="select">
<?php
do {
?>
<option value="<?php echo $row_cat['id_cat']?>"><?php echo $row_cat['desig']?></option>
<?php
} while ($row_cat = mysql_fetch_assoc($cat));
$rows = mysql_num_rows($cat);
//echo $rows;
if($rows > 0) {
mysql_data_seek($cat,$rows);
$row_cat = mysql_fetch_assoc($cat);
}
?>
</select></td>
<td align="center"><input name="descripro" type="text" /></td>
<td align="center"><input name="fichier" type="file" /><br></td>
<td align="center"><input name="nompro" type="text" /></td>
</tr>
<td colspan="4" align="center"><input type="submit" name="submit" value="?????"/></td>
</tr>
<tr>
</table>
<input type="hidden" name="MM_insert" value="form3">
</form>
</body>
</html>
<?php
//mysql_free_result($recordproduits);
?>
<?php require_once('Connections/nom.php'); ?>