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   -
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>';
}
}
?>
A voir également:

6 réponses

adns Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   153
 
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
0
Utilisateur anonyme
 
les messages d'erreurs seraient plus utiles
0
Kroma Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   2
 
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.
0
adns Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   153
 
ca me parait bien bizarre mais bon essai comme ca


mysql_query("UPDATE ma_table SET image = '".$chemin."' WHERE id = '".$id."'");

Adns
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Kroma Messages postés 44 Date d'inscription   Statut Membre Dernière intervention   2
 
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.
0
adns Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   153
 
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
0