Page 1 sur 1

PHP Warning: move_uploaded_file

Posté : 27 mars 2010, 21:25
par Benamour Jr
Je suis en train de monter un script tout bête d'upload d'avatar sur mon site et j'ai cet affreux message d'erreur :

[27-Mar-2010 20:08:17] PHP Warning: move_uploaded_file(avatar/) [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: failed to open stream: Is a directory in /home/estoriai/public_html/profil.php on line 238
[27-Mar-2010 20:08:17] PHP Warning: move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Unable to move '/tmp/phpdAROB6' to 'avatar/' in /home/estoriai/public_html/profil.php on line 238

Quelqu'un pourrait-il m'aider à en trouver l'origine ? Voici mon code :
<?php
if (isset($_FILES['avatar']))
{
	// Vérifier les éventuelles erreurs
	if ($_FILES['avatar']['error'] == 0)
	{
		// Vérifier la taille du fichier
		if ($_FILES['avatar']['size'] <= 10240)
		{
			// Vérifier l'extension du fichier
			if ($_FILES['avatar']['type'] != 'image/png' && $_FILES['avatar']['type'] != 'image/jpeg' && $_FILES['avatar']['type'] != 'image/jpg' && $_FILES['avatar']['type'] != 'image/gif')
			{
				echo 'Votre avatar doit être au format jpeg, jpg, gif ou png.';
			} 
			else
			{
				// Vérifier les dimensions de l'image
				$maxwidth = 100; // En pixel
				$maxheight = 100;
				$image_sizes = getimagesize($_FILES['avatar']['tmp_name']);
				if ($image_sizes[0] <= $maxwidth AND $image_sizes[1] <= $maxheight)
				{
					// On définit l'extention du fichier puis on le nomme par le timestamp actuel
					if ($_FILES['avatar']['type'] == 'image/jpeg') { $extention = '.jpeg'; }
					if ($_FILES['avatar']['type'] == 'image/jpg') { $extention = '.jpg'; }
					if ($_FILES['avatar']['type'] == 'image/png') { $extention = '.png'; }
					if ($_FILES['avatar']['type'] == 'image/gif') { $extention = '.gif'; }
					$nom_avatar = time().$extention; 
					$repertoire = 'avatar/';
					if (move_uploaded_file($_FILES['avatar']['tmp_name'], $repertoire.$nom_avatar))
					{
						echo 'Image uploaded !';
					}
					else
					{
						echo 'L\'image n\'a pas pu être uploadée sur le serveur.';
					}
				}
				else
				{
					echo '<p>Les dimensions de votre image ne sont pas correctes (taille maximale : 100*100).</p>';
				}
			}
		}
		else
		{
			echo '<p>Votre avatar est trop lourd (poids maximum : 10ko).</p>';
		}
	}
	else
	{
		echo '<p>Une erreur est survenue lors de l\'enregistrement de votre avatar.</p>';
	}
}

?>
Je précise que je le script me renvoie le message "Image uploaded !", ce qui me parait encore plus bizarre o.O

Re: PHP Warning: move_uploaded_file

Posté : 27 mars 2010, 21:29
par stealth35
t'as les droits sur ton serveur pour faire ca ?

Re: PHP Warning: move_uploaded_file

Posté : 27 mars 2010, 21:42
par Benamour Jr
heu ca marche en fait ! le truc c'est que les fichiers existent sur le serveur mais ne sont pas visible via Filezila o.O Pourtant je peux y accéder via leur lien (j'ai vu ça grâce au cpnael de mon hébergeur)! Bizarre bizarre...

Re: PHP Warning: move_uploaded_file

Posté : 27 mars 2010, 22:04
par Dr@ke
Menu Filezila -> Serveur -> Sélectionner: Forcer l'affichage des fichiers cachés :wink:

Re: PHP Warning: move_uploaded_file

Posté : 27 mars 2010, 22:20
par AB
Habituellement on force l'affichage des fichiers cachés pour des fichiers type .htaccess

C'est quand même bizarre que des fichiers de type jpeg, jpg, gif ou png soient cachés :-k

Re: PHP Warning: move_uploaded_file

Posté : 27 mars 2010, 22:23
par Dr@ke
C'est vrai, j'ai déjà eu ce problème mais comme AB que pour les fichiers .htaccess.

Re: PHP Warning: move_uploaded_file

Posté : 27 mars 2010, 23:48
par salva57
Bonjour,

Moi j'ai utilisé le code donné ici pour l'upload des fichiers sur mon serveur

http://antoine-herault.developpez.com/t ... hp/upload/

Sa marche très bien.

@+

Re: PHP Warning: move_uploaded_file

Posté : 27 mars 2010, 23:50
par Benamour Jr
Bizarre en effet, pourtant avant de faire la manip je voyais clairement les .htpasswd et .htaccess via Filezila.
En fait j'ai remarqué que les images apparaissaient mais avec 30 minutes de retard environ... mais heureusement grâce à la manip de Drake c'est maintenant instantané, merci ;)

@salva57 : merci mais mon code est déjà terminé :p

Re: PHP Warning: move_uploaded_file

Posté : 28 mars 2010, 00:16
par Dr@ke
Il est pas mal le lien à salva57.
L'idée d'utiliser la fonction filesize() sur $_FILES['avatar']['tmp_name'] est pas mal.
Et le basename() c'est toujours pratique aussi.

Par contre c'est toujours, tout de même, plus fun de faire son propre script :)