PB d'upload d'image
Kroma
Messages postés
44
Date d'inscription
Statut
Membre
Dernière intervention
-
adns Messages postés 1094 Date d'inscription Statut Membre Dernière intervention -
adns Messages postés 1094 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai créé un site pour un ami. Sur ce site j'ai mis un système d'upload de photo qui fonctionne très bien sur tous les PC que j'ai testé. Il n'y a que chez lui que cela ne fonctionne pas. Les photos sont chargé sur le serveur mais le "chemin" ne s'enregistre pas dans la base de donnée. Je ne comprend pas pourquoi. Je vous donne le code et si quelqu'un à une idée, merci d'avance.
//--------------------------------------
// DEFINITION DES VARIABLES
//--------------------------------------
$target = "files/"; // Repertoire cible
$max_size = 2000000; // Taille max en octets du fichier
$width_max = 9000; // Largeur max de l'image en pixels
$height_max = 9000; // Hauteur max de l'image en pixels
$extensions_ok = array("jpg","gif","png","jpeg","bmp","JPG","BMP","JPEG","GIF","PNG");
//------------------------------------------------------------
// DEFINITION DES VARIABLES LIEES AU FICHIER
//------------------------------------------------------------
$tmp = $_FILES['fichier']['tmp_name'];
$nom_file = time()."_".$_FILES["fichier"]["name"];
$taille = $_FILES['fichier']['size'];
$chemin = $target.time()."_".$_FILES["fichier"]["name"];
$extension = substr($nom_file,-3); // Récupération de l'extension
//---------------------------
// SCRIPT D'UPLOAD
//---------------------------
if($_POST['posted'])
{
// On vérifie si le champ est rempli
if($_FILES['fichier']['name'])
{
// On vérifie l'extension du fichier
if(in_array(strtolower($extension),$extensions_ok))
{
// On récupère les dimensions du fichier
$infos_img = getimagesize($_FILES['fichier']['tmp_name']);
// On vérifie les dimensions et taille de l'image
if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($taille <= $max_size))
{
// Si c'est OK, on teste l'upload
if(move_uploaded_file($tmp, $target.$nom_file))
{
// Si upload OK alors on affiche le message de réussite
echo '<p>Image uploadée avec succès !</p>';
echo '<ul><li>Fichier : '.$_FILES['fichier']['name'].'</li>';
echo '<li>Taille : '.$_FILES['fichier']['size'].' Octets</li>';
echo '<li>Largeur : '.$infos_img[0].' px</li>';
echo '<li>Hauteur : '.$infos_img[1].' px</li></ul>';
$id = $_POST['id'];
// On peut enregistrer
mysql_query("UPDATE ma_table SET image = '$chemin' WHERE id = '$id'");
}
else
{
// Sinon on affiche une erreur système
echo '<p>Problème lors de l\'upload !</p>';
}
}
else
{
// Sinon erreur sur les dimensions et taille de l'image
echo '<p>Erreur dans les dimensions ou taille de l\'image !</p>';
}
}
else
{
// Sinon on affiche une erreur pour l'extension
echo '<p>Votre image ne comporte pas une extension valide !</p>';
}
}
else
{
// Sinon on affiche une erreur pour le champ vide
echo '<p>Le champ du formulaire est vide !</p>';
}
}
?>
J'ai créé un site pour un ami. Sur ce site j'ai mis un système d'upload de photo qui fonctionne très bien sur tous les PC que j'ai testé. Il n'y a que chez lui que cela ne fonctionne pas. Les photos sont chargé sur le serveur mais le "chemin" ne s'enregistre pas dans la base de donnée. Je ne comprend pas pourquoi. Je vous donne le code et si quelqu'un à une idée, merci d'avance.
//--------------------------------------
// DEFINITION DES VARIABLES
//--------------------------------------
$target = "files/"; // Repertoire cible
$max_size = 2000000; // Taille max en octets du fichier
$width_max = 9000; // Largeur max de l'image en pixels
$height_max = 9000; // Hauteur max de l'image en pixels
$extensions_ok = array("jpg","gif","png","jpeg","bmp","JPG","BMP","JPEG","GIF","PNG");
//------------------------------------------------------------
// DEFINITION DES VARIABLES LIEES AU FICHIER
//------------------------------------------------------------
$tmp = $_FILES['fichier']['tmp_name'];
$nom_file = time()."_".$_FILES["fichier"]["name"];
$taille = $_FILES['fichier']['size'];
$chemin = $target.time()."_".$_FILES["fichier"]["name"];
$extension = substr($nom_file,-3); // Récupération de l'extension
//---------------------------
// SCRIPT D'UPLOAD
//---------------------------
if($_POST['posted'])
{
// On vérifie si le champ est rempli
if($_FILES['fichier']['name'])
{
// On vérifie l'extension du fichier
if(in_array(strtolower($extension),$extensions_ok))
{
// On récupère les dimensions du fichier
$infos_img = getimagesize($_FILES['fichier']['tmp_name']);
// On vérifie les dimensions et taille de l'image
if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($taille <= $max_size))
{
// Si c'est OK, on teste l'upload
if(move_uploaded_file($tmp, $target.$nom_file))
{
// Si upload OK alors on affiche le message de réussite
echo '<p>Image uploadée avec succès !</p>';
echo '<ul><li>Fichier : '.$_FILES['fichier']['name'].'</li>';
echo '<li>Taille : '.$_FILES['fichier']['size'].' Octets</li>';
echo '<li>Largeur : '.$infos_img[0].' px</li>';
echo '<li>Hauteur : '.$infos_img[1].' px</li></ul>';
$id = $_POST['id'];
// On peut enregistrer
mysql_query("UPDATE ma_table SET image = '$chemin' WHERE id = '$id'");
}
else
{
// Sinon on affiche une erreur système
echo '<p>Problème lors de l\'upload !</p>';
}
}
else
{
// Sinon erreur sur les dimensions et taille de l'image
echo '<p>Erreur dans les dimensions ou taille de l\'image !</p>';
}
}
else
{
// Sinon on affiche une erreur pour l'extension
echo '<p>Votre image ne comporte pas une extension valide !</p>';
}
}
else
{
// Sinon on affiche une erreur pour le champ vide
echo '<p>Le champ du formulaire est vide !</p>';
}
}
?>
A voir également:
- PB d'upload d'image
- Image iso - Guide
- Youtube upload - Télécharger - Diffusion
- Reduire taille image - Guide
- Acronis true image - Télécharger - Sauvegarde
- Légender une image - Guide
6 réponses
Bonjour
tu fais un upload image je suppose donc que ces image n'existe pas en base de donnée a la base non ?
donc tu ne peux pas faire un udpate de quelque chose qui n'existe pas tu dois faire un Insert....
Adns
tu fais un upload image je suppose donc que ces image n'existe pas en base de donnée a la base non ?
donc tu ne peux pas faire un udpate de quelque chose qui n'existe pas tu dois faire un Insert....
Adns
Bonjour adns et JMG78,
Tout d'abord merci pour vos réponses. Pour ce qui concerne l'enregistrement du chemin de la photo dans la base de donnée il se fait de la sorte :
mysql_query("UPDATE ma_table SET image = '$chemin' WHERE id = '$id'");
Comme stipulé dans mon premier message.
Ensuite, il n'y a pas de message d'erreurs étant donnée que l'upload se passe à la perfection et que uniquement l'enregistrement dans la base de donné du "chemin" de la photo reste aléatoire. Chez moi ça fonctionne sans problème.
Tout d'abord merci pour vos réponses. Pour ce qui concerne l'enregistrement du chemin de la photo dans la base de donnée il se fait de la sorte :
mysql_query("UPDATE ma_table SET image = '$chemin' WHERE id = '$id'");
Comme stipulé dans mon premier message.
Ensuite, il n'y a pas de message d'erreurs étant donnée que l'upload se passe à la perfection et que uniquement l'enregistrement dans la base de donné du "chemin" de la photo reste aléatoire. Chez moi ça fonctionne sans problème.
ca me parait bien bizarre mais bon essai comme ca
mysql_query("UPDATE ma_table SET image = '".$chemin."' WHERE id = '".$id."'");
Adns
mysql_query("UPDATE ma_table SET image = '".$chemin."' WHERE id = '".$id."'");
Adns
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Encore Merci Adns mais ca ne fonctionne toujours pas chez mon ami. Je crois que je vais totalement changé de système d'upload. D'ailleurs si tu en connais un, je suis preneur.
je ne pense pas que ca vienne de ton systeme d'upload mais de ta requete sql car avec celle que tu utilise tu cherche a modifier un information qui existe deja donc si elle na pas été creer avant c'est normal que cela ne fasse rien !!!
es ce que tu entre a un moment quelconque une information en base ??
Adns
es ce que tu entre a un moment quelconque une information en base ??
Adns