Page 1 sur 1

problème d'upload une tof

Posté : 08 déc. 2011, 22:18
par miiidooo19
bonjour a tous le monde j'ai un problème d'upload une foto en ligne, en local tt marche bien et en ligne ça m'affiche ce message d'erreur

Warning: unlink(): http does not allow unlinking in /var/www/vhosts/mon-site.com/httpdocs/profile.php on line 94 Warning: move_uploaded_file(http://mon-site.com/pic_user/mido.png): failed to open stream: HTTP wrapper does not support writeable connections in /var/www/vhosts/mon-site.com/httpdocs/profile.php on line 96 Warning: move_uploaded_file(): Unable to move '/tmp/phpEL6ZH9' to 'http://mon-site.com/pic_user/mido.png' in /var/www/vhosts/mon-site.com/httpdocs/profile.php on line 96

qlq un serai capable de m'expliquer d'ou vien cette erreur ?

Re: problème d'upload une tof

Posté : 08 déc. 2011, 22:34
par Ryle
La gestion des fichiers se fait via le système de fichier sur le disque dur (c'est à dire via des adresses du genre c:\ sous windows et pas des http qui sont des adresses internet)

En gros si le dossier "pic_user/" se trouve dans le même répertoire que ton script profile.php, il faut faire un move_uploaded_file vers "pic_user" (ou "./pic_user") et non vers "http://..." :)

Re: problème d'upload une tof

Posté : 08 déc. 2011, 22:45
par miiidooo19
La gestion des fichiers se fait via le système de fichier sur le disque dur (c'est à dire via des adresses du genre c:\ sous windows et pas des http qui sont des adresses internet)

En gros si le dossier "pic_user/" se trouve dans le même répertoire que ton script profile.php, il faut faire un move_uploaded_file vers "pic_user" (ou "./pic_user") et non vers "http://..." :)
j'ai met au début pic_user/ mais ça marché pas voici le message d'erreur :( dans le cas de pic_user/

Warning: unlink(pic_user/mido.png): Permission denied in /var/www/vhosts/mon-site.com/httpdocs/profile.php on line 94 Warning: move_uploaded_file(pic_user/mido.png): failed to open stream: Permission denied in /var/www/vhosts/mon-site.com/httpdocs/profile.php on line 96 Warning: move_uploaded_file(): Unable to move '/tmp/phpUPfoc7' to 'pic_user/mido.png' in /var/www/vhosts/mon-site.com/httpdocs/profile.php on line 96

voici le script
if ( (isset($_FILES["photo"])) and ($_FILES["photo"]['name'] <> '') )
		{
			$extensions_ok = array('png', 'PNG', 'gif', 'GIF', 'jpg', 'JPG', 'jpeg', 'JPEG');
			$taille_max = 2097152;
			$dossier = 'pic_user/';

			$taille= getimagesize($_FILES['photo']['tmp_name']);
			$largeur=$taille[0];
			$hauteur=$taille[1];
			
			$erreur = '';
			if ( ($largeur > 80) or ($hauteur > 200) )
			{
				$erreur = "* Erreur dans dimensions, format ou la taille de l'image"; 
			}
			elseif( !in_array( substr(strrchr($_FILES["photo"]['name'], '.'), 1), $extensions_ok ) )
			{
				// $erreur = "* Erreur du format dans l'image Veuillez s&eacute;lectionner une image de type png, gif ou jpg !"; 
				$erreur = "* Erreur dans dimensions, format ou la taille de l'image"; 				
			}
			elseif( file_exists($_FILES["photo"]['tmp_name']) and filesize($_FILES["photo"]['tmp_name']) > $taille_max)
			{
				// $erreur = "* Erreur dans la taille de l'image votre image doit faire moins de 500Ko !";
				$erreur = "* Erreur dans dimensions, format ou la taille de l'image"; 
			}
			
			if ( $erreur == '' )
			{
				// exetension de l'image
				$extension = substr(strrchr($_FILES["photo"]['name'], '.'), 1);
				// nom de l'image
				$namImg = $_SESSION['pseudo'].".".$extension;
				// Uploader L'image
				
				
				if ( $image != 'pic_user/no-pic.png' )
					unlink($image);
				
				move_uploaded_file($_FILES["photo"]['tmp_name'], $dossier . $namImg); // Upoade la nouvelle image
				
				$image = $dossier.$namImg;
			}
		}

Re: problème d'upload une tof

Posté : 08 déc. 2011, 22:50
par Ryle
Est- ce que le dossier pic_user existe bien sur le serveur ?
si oui, où est-ce qu'il se trouve par rapport à ton script profile.php ? (même répertoire ? sous répertoire ? dans une autre arborescence ?)

Re: problème d'upload une tof

Posté : 08 déc. 2011, 23:37
par miiidooo19
Est- ce que le dossier pic_user existe bien sur le serveur ?
si oui, où est-ce qu'il se trouve par rapport à ton script profile.php ? (même répertoire ? sous répertoire ? dans une autre arborescence ?)
oui le dossier pic_user existe dans le serveur
dans le dossier racine (www) de mon site j'ai les script index.^php....et profile.php et les dossier include, img, et pice_user....

Re: problème d'upload une tof

Posté : 09 déc. 2011, 10:34
par moogli
c'est bien
/var/www/vhosts/mon-site.com/httpdocs/
/var/www/vhosts/mon-site.com/httpdocs/include
/var/www/vhosts/mon-site.com/httpdocs/img
/var/www/vhosts/mon-site.com/httpdocs/pice_user

et pas /var/www/pice_user ?

sinon d'après le message d'erreur php n'a pas les droits pour ce que tu demande. essai d'ajouter un chmod 0777 sur le répertoire (et ce qu'il contient) avec un client FTP.

de plus il serait très prudent de vérifie que le fichier existe avant d'essayer de la supprimer histoire d'éviter un message d'erreur :)

@+

Re: problème d'upload une tof

Posté : 09 déc. 2011, 11:04
par miiidooo19
c'est bien
/var/www/vhosts/mon-site.com/httpdocs/
/var/www/vhosts/mon-site.com/httpdocs/include
/var/www/vhosts/mon-site.com/httpdocs/img
/var/www/vhosts/mon-site.com/httpdocs/pice_user

et pas /var/www/pice_user ?

sinon d'après le message d'erreur php n'a pas les droits pour ce que tu demande. essai d'ajouter un chmod 0777 sur le répertoire (et ce qu'il contient) avec un client FTP.

de plus il serait très prudent de vérifie que le fichier existe avant d'essayer de la supprimer histoire d'éviter un message d'erreur :)

@+
j'ai pas dossier www dans mon serveur
voici le chemin de mon dossier pic_user (/httpdocs/pic_user)
voici une image qui indique bien que le profile.php et pic_user sont dans la même répertoire /httpdocs
Image

donc le chemain de pic_user c'est bien (/httpdocs/pic_user) mais vu que pic_user et profile.php sont ds la meme répertoire j'ai pas besoin de ajouter httpdocs non ?

chmod 0777 c'est droit d'accès au fichier non ? clik droit sur le dossier pic_user c'est ça ?

pour ta dernière remarque je pense que je suis pas obligatoire parce que enfait quand l'utilisateur s'inscrit pour le première fois je lui donne une image par défaut qui s'appel no-pic.png et quand il upload une nouvelle image pour la première fois donc y a pas d'image a supprimé ($image = le nom de l'image que je recupére dans la bdd et là pour le moment c'est no-pic.png) donc je test si $image!= no-pic.png je la supprime parce dans ce cas c'est pas la première fois que le mec upload une image tu vois ce que je veux dire ?

Re: problème d'upload une tof

Posté : 09 déc. 2011, 15:20
par moogli
Heu non le / représente la racine du système hors ton script n'est pas a la racine, regarde le message d'erreur il te l'indique.
Ce que tu vois en FTP c'est que le "home" de l'utilisateur FTP connecté ;)
Son si tu a créer le répertoire avec le client FTP change le Chloé en 0777 ;)


@+

Re: problème d'upload une tof

Posté : 09 déc. 2011, 15:24
par miiidooo19
Heu non le / représente la racine du système hors ton script n'est pas a la racine, regarde le message d'erreur il te l'indique.
Ce que tu vois en FTP c'est que le "home" de l'utilisateur FTP connecté ;)
Son si tu a créer le répertoire avec le client FTP change le Chloé en 0777 ;)


@+
Donc le chemin que je vais mettre moi dans mon script c'est /pin_user ?

Re: problème d'upload une tof

Posté : 09 déc. 2011, 15:52
par moogli
Nan ......

Je viens de mettre que le / initial c'est la racine du système de fichier et ton répertoire N'est pas a la racine du système !

Il y a :
- la système de fichier de la machine sur laquelle evolue Apache, php et le client FTP.
- l'url
- le serveur root d'apache
- le serveur root de ton site
- le répertoire de base de l'utilisateur FTP

Tous cela ne représente pas la même chose.
Le système de fichier qui commence par / contient tous les fichier de la machine.
Quand tu fait cd /home/moogli tu va dans le répertoire moogli du répertoire home qui lui est juste à la racine et ceci depuis n'importe ou !
Par exemple sous windows tu ferais cd c:\users\moogli pour la même chose.

Maintenant un serveur FTP repose sur le système de fichier et va attribuer à un utilisateur (qui peu ne pas être un utilisateur du système) des droits sur un ou plusieurs répertoires. Sur le même principe que celui de la gestion des utilisateurs du système l'utilisateur FTP à un répertoire "home" et ne verra rien en dehors.
Ce n'est pas pour autant qu'un fichier dedans utilisant le système de fichier pourra utiliser le / pour indiquer un fichier au même niveau que lui. Il va falloir utiliser un chemin relatif (avec pourquoi pas le ./).

La dessus Apache à un "hôte virtuel" définissant ton site et utilisant un répertoire de son "serverroot" ce répertoire étant le "home" de l'utilisateur FTP.

Donc soit tu indique le chemin depuis la racine (que tu connais grâce aux messages d'erreurs) soit tu utilise le ./ soit rien. Ce qui sera considéré comme le ./

Quand au chemin de l'url il est référencé par rapport à l'url de base de ton site (le http://www.tonsiteatoi.com) qui sera la racine. Car le navigateur (opéra, chrome, Firefox safari, is et un tas d'autre ne connaissent pas la machine sur laquelle tourne Apache (ou autre hein ;) ) et s'en fou lui il fait une demande à une URL, le / représentant l'url de base du site aprèse serveur oueb fait le tri comme un grand.

Regarde sur le net des tuto sur les système de fichier sous UNIX et comment y naviguer.
Voir même sur le principe du chroot parce qu'au final c'est de ça qu'il s'agit).


Bonne lecture ;)

@+

Re: problème d'upload une tof

Posté : 09 déc. 2011, 16:14
par miiidooo19
J'adore ton Nan ...... ^^ ça me fait penser à un prof lol

bah finalement j'ai changé les droit d'accès comme tu as dit de 755 à 777 pour le dossier pic_user et ça marche :)

Merci prof moogli ^^

Re: problème d'upload une tof

Posté : 09 déc. 2011, 21:56
par Ryle
Ouais, et t'as du bol d'être à l'abri derrière ton ordinateur, parce que sinon prof moogli t'aurait balancé une craie en travers de la figure ;)

Re: problème d'upload une tof

Posté : 10 déc. 2011, 01:42
par moogli
plutot la chaise c'est le seul truc pas indispensable pour le fonctionnement de l'ordi :mrgreen:

Re: problème d'upload une tof

Posté : 10 déc. 2011, 20:32
par miiidooo19
Loool :D