Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/02/2008, 19h29   #1
Membre habitué
 
Avatar de lolymeupy
 
Inscription : octobre 2006
Messages : 329
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2006
Messages : 329
Points : 106
Points : 106
Envoyer un message via MSN à lolymeupy
Par défaut [Upload] Pb avec la fonction move_uploaded_file !

bonjour,
je voudrais enregistrer des images, uploadées à partir d'un formulaire, dans un dossier "image" que j'ai créé.
J'arrive à enregistrer ttes les autres données du formulaires dans ma Bdd, mais pas l'image dans le dossier "image".

Voici l'extrait de mon code concerné :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
//je test la taille de l'image
$img_taille = $_FILES['fic_image']['size'];
	if ( $img_taille > $taille_max )
	{
		echo "Fichier trop gros !";
	}
	else 
	{
        //j'indique le chemin "relatif" demon dossier image 
	$uploaddir = '/images/';
        //je change le nom de la photo (pr eviter les doublons)
	$nom_photo =  $titre . $date_debut . basename($_FILES['fic_image']['name']);
 
        //je concatène le chemin avec le nouveau nom de la photo...
	$uploadfile = $uploaddir . $titre . $date_debut . basename($_FILES['fic_image']['name']);
 
	//...et je passe ça en paramètre à la fonction Move_uploaded_file
		move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);
	}
Pour précision, je travaille en local, avec wampserver 2.0
Sinon, tous mes scripts sont dans mon dossier "PjtAgendaCulturel" dont le chemin est :
C:\wamp\www\PjtAgendaCulturel\(scripts php et html)

et le chemin de mon dossier images :
C:\wamp\www\PjtAgendaCulturel\images\

Je ne sais pas si c'est un problème de chemin dans la variable "$uploaddir", ou si c'est un problème de mauvaise utilisation de la fonction "move_uploaded_file" ?
lolymeupy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2008, 20h13   #2
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Vous n'utilisez pas les mêmes variables :
Code :
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile);
En opposition à :
Code :
$img_taille = $_FILES['fic_image']['size'];
Est-ce normal (ie avez-vous deux fichiers ou plus) ?

Un var_dump($_FILES) pourrait éventuellement aider et si move_uploaded_file échoue, peu importe la raison, il doit générer une erreur (éventuellement à chercher dans les logs ou il faut reconfigurer PHP d'une manière ou d'une autre). Par ailleurs, je vous recommande vivement d'utiliser le résultat de la fonction move_uploaded_file pour savoir si l'opération de déplacement échoue ou non.

Enfin, je ne suis pas certain que le chemin indiqué en valeur pour la variable $uploaddir soit valide (en tout cas elle posera problème sur un serveur type Unix) : utilisez un vrai chemin relatif - 'images/' par exemple - ou absolu - realpath('images/'), par exemple.

(N'hésitez pas à vous baser sur le tutoriel Upload de fichiers en PHP si besoin est)
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2008, 20h24   #3
Membre habitué
 
Avatar de lolymeupy
 
Inscription : octobre 2006
Messages : 329
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2006
Messages : 329
Points : 106
Points : 106
Envoyer un message via MSN à lolymeupy
merci Julp.
effectivement, je me suis planté dans le nom de variable, mais une fois réparé l'erreur, voilà ce que ça donne :

Code :
1
2
3
4
5
6
7
8
9
 
Warning: move_uploaded_file(/images/aa2009-01-012126697973_45c4e6dd81_m.jpg) 
[function.move-uploaded-file]: failed to open stream: No such file 
or directory in C:\wamp\www\PjtAgendaCulturel\enreg_evt.php on line 62
 
Warning: move_uploaded_file() [function.move-uploaded-file]: 
Unable to move 'C:\wamp\tmp\php174.tmp' to 
'/images/aa2009-01-012126697973_45c4e6dd81_m.jpg' in 
C:\wamp\www\PjtAgendaCulturel\enreg_evt.php on line 62
je précise que "enreg_evt.php est le script php qui récupère les données du formulaire .

Est-ce que c'est le chemin qui est mauvais?

Et sinon, par rapport au tuto sur "l'upload de fichier", je vois bien l'ensempble, mais j'ai toujours du mal à voir où est le fichier de destination des images ?
Et il parle de "chmod" ???
lolymeupy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2008, 21h41   #4
Membre habitué
 
Avatar de lolymeupy
 
Inscription : octobre 2006
Messages : 329
Détails du profil
Informations personnelles :
Âge : 36
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : octobre 2006
Messages : 329
Points : 106
Points : 106
Envoyer un message via MSN à lolymeupy
ok, en fait j'ai trouvé mon pb, un peu au petit bohneur la chance j'avoue.

en fait, le pb c'était : $uploaddir = '/images/';

il fallait enlevé le premier /
soit : $uploaddir = 'images/';
lolymeupy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h53.


 
 
 
 
Partenaires

Hébergement Web