Problème d'upload d'image

Répondre
Mew2
le 24/02/2010 à 13:45
Mew2
Bonjour,
J'ai fait un forum avec le tutoriel de Tadzoa, mais quand je modifie le profil je ne peux pas uploader l'avatar j'ai cette erreur :

Warning: getimagesize() [function.getimagesize]: Unable to access images/avatars/1267010054.png in /home/pokeanime2/www/New-Version/forum/modifprofil.php on line 132

Warning: getimagesize(images/avatars/1267010054.png) [function.getimagesize]: failed to open stream: No such file or directory in /home/pokeanime2/www/New-Version/forum/modifprofil.php on line 132


Voici la partie de l'upload :

<?php
//Vérification de l'avatar

if (!empty($_FILES['avatar']['size']))
{
//On définit les variables :
$maxsize = $config['avatar_maxsize']; //Poid de l'image
$maxwidth = $config['avatar_maxl']; //Largeur de l'image
$maxheight = $config['avatar_maxh']; //Longueur de l'image
//Liste des extensions valides
$extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' );

if ($_FILES['avatar']['error'] > 0)
{
$avatar_erreur = "Erreur lors du tranfsert de l'avatar : ";
}
if ($_FILES['avatar']['size'] > $maxsize)
{
$i++;
$avatar_erreur1 = "Le fichier est trop gros :
(<strong>".$_FILES['avatar']['size']." Octets</strong>
contre <strong>".$maxsize." Octets</strong>)";
}



$extension_upload = strtolower(substr( strrchr($_FILES['avatar']['name'], '.') ,1));
if (!in_array($extension_upload,$extensions_valides) )
{
$i++;
$avatar_erreur3 = "Extension de l'avatar incorrecte";
}
}
?>
<div id="corps_forum">
<?php

if ($i == 0) // Si $i est vide, il n'y a pas d'erreur
{
if (!empty($_FILES['avatar']['size']))
{
//On déplace l'avatar
$avatar = time();
$nomavatar = str_replace(' ','',$avatar).".".$extension_upload;
$avatar = "images/avatars/".str_replace(' ','',$avatar).".".$extension_upload;
move_uploaded_file($_FILES['avatar']['tmp_name'],$avatar);
$image_sizes = getimagesize($avatar);

if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
{
$i++;
$avatar_erreur2 = "Image trop large ou trop longue :
(<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre
<strong>".$maxwidth."x".$maxheight."</strong>)";
}

mysql_query('UPDATE forum_membres
SET membre_avatar = "'.$nomavatar.'"
WHERE membre_id = '.$_SESSION['id']);
}

//Une nouveauté ici : on peut choisisr de supprimer l'avatar
if (isset($_POST['Delete']))
{
mysql_query('DELETE membre_avatar
FROM forum_membres WHERE membre_id = '.$_SESSION['id']);
}
?>


Merci d'avance
LA GLOBULE
le 24/02/2010 à 14:05
LA GLOBULE
Surement que ton move_uploaded_file n'a pas du bien se faire.

Teste sa valeur de retour.
Mew2
le 24/02/2010 à 14:09
Mew2
Sa ne marche toujours pas je pense qu'il doit avoir autre chose que move_uploaded_file pour uploader des images non ?
LA GLOBULE
le 24/02/2010 à 14:11
LA GLOBULE
La fonction retourne quelle valeur ?

Si c'est false, c'est que le move_uploaded_file ne s'est pas fait.
Dans ce cas, vérifie que tu as bien les permissions en écriture dans ton dossier.
Mew2
le 24/02/2010 à 19:59
Mew2
Oui j'ai vérifier aussi les permissions du dossier, mais rien à faire !
LA GLOBULE
le 24/02/2010 à 20:39
LA GLOBULE
La fonction retourne quoi ?
Fais un var_dump du résultat.

Ca ne sert à rien de tester des trucs au pif, vérifie déjà le résultat des fonctions. Sinon on avancera pas. Personne ne peut dire ce qui ne va pas dans ton code.

En faisant des var_dump, ton problème se reglera en 30 sec.
moogli
le 26/02/2010 à 14:59
moogli
donc le fichier n'est pas déplacé ce qui explique le problème sur la ligne suivante.

A tu les droits pour écrire sur ce répertoire ?

fait un var_dump($avatar) histoire de voir ce que contient exactement cette variable avant le déplacement.

peut être devrais tu être plus explicite sur le chemin (avec un ./ devant par exemple ou alors le chemin depuis la racine).

que contient $_FILES['error'] ?


@+
Il en faut peu pour être heureux !!!!!
Mew2
le 26/02/2010 à 18:00
Mew2
Le var_dump m'affiche string(29) "images/avatars/1267186876.png" j'ai essayer avec un ./ mais rien.
moogli
le 27/02/2010 à 11:50
moogli
est ce bien ce que tu attend ?

Que contient $_FILES['error'] ?

@+
Il en faut peu pour être heureux !!!!!
Répondre
LoadingChargement en cours