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 19/03/2007, 16h00   #1
Invité régulier
 
Alexis Mossay
Inscription : février 2007
Messages : 28
Détails du profil
Informations personnelles :
Nom : Alexis Mossay
Âge : 26

Informations forums :
Inscription : février 2007
Messages : 28
Points : 5
Points : 5
Par défaut [Upload] Upload via formulaire

Bonjour,

J'essaie de copier un fichier dans un répertoire grâce à un formulaire mais sans succès...

Voici mon code HTML
Code html :
1
2
3
4
5
<form name = "form" enctype="multipart/form-data" action = "./admin_newsletters.php?section=add&action=add" method = "post" onSubmit = "return checkForm()">
<input type = "hidden" name = "MAX_FILE_SIZE" value = "30000" />
<input type = "file" name = "file"><br /><br />
<img src = "./img/accept.gif"/> <input type = "submit" value = "Ajouter">
</form>

Et mon code PHP
Code :
1
2
3
4
5
6
7
 
$uploadDir = '../www/CRIPEL/newsletters/';
$fileName = $_FILES["file"]["name"];
 
if(is_uploaded_file($_FILES["file"]["name"])) {
	move_uploaded_file($fileName,$uploadDir);
}
J'ai essayé en spécifiant le chemin à partir du dossier de stockage temporaire et à partir de ma page php, résultat identique, rien ne se passe...
Je précise que je travaille en local avec WAMP et que l'upload est autorisé dans le php.ini et pour la taille c'est ok également....

ça fait deux heures que je planche là dessus mais pas moyen, j'ai besoin de vous

Edit : Je viens de me rendre compte que le dossier de destination était en lecture seule mais après correction le problème reste inchangé...

Edit2 : Je viens de tester avec un echo, et le code dans le if n'est pas exécuté, je ne sais pas pourquoi
AlexisMossay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 16h51   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
tu ne testais pas le bon nom, il faut tester "tmp_name" comme ça :

Code :
1
2
3
4
5
6
$uploadDir = '../www/CRIPEL/newsletters/';
$fileName = $_FILES['file']['name'];
 
if(is_uploaded_file($_FILES['file']['tmp_name'])) {
    move_uploaded_file($_FILES['file']['tmp_name'], "$uploadDir$fileName");
}
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 20h30   #3
Invité régulier
 
Alexis Mossay
Inscription : février 2007
Messages : 28
Détails du profil
Informations personnelles :
Nom : Alexis Mossay
Âge : 26

Informations forums :
Inscription : février 2007
Messages : 28
Points : 5
Points : 5
Il y a du changement ! ça marche pas mais il se passe quelque chose ^^

Alors voici mon code php
Code :
1
2
3
4
5
6
7
8
 
$uploadDir = '../www/CRIPEL/newsletters/';
$fileName = $_FILES["file"]["tmp_name"];
echo $fileName;
 
if(is_uploaded_file($fileName)) {
	move_uploaded_file($fileName,$uploadDir);
}
Qui me génère cette belle erreur
Citation:
c:/Program Files/wamp/tmp\php674.tmp
Warning: move_uploaded_file(../www/CRIPEL/newsletters/) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\Program Files\wamp\www\CRIPEL\admin_newsletters.php on line 19

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'c:/Program Files/wamp/tmp\php674.tmp' to '../www/CRIPEL/newsletters/' in C:\Program Files\wamp\www\CRIPEL\admin_newsletters.php on line 19
Que je pige pas vraiment

Si je change le $uploadDir pour './newsletter/'
J'obtiens ceci :
Citation:
c:/Program Files/wamp/tmp\php677.tmp
Qui est la réponse à mon echo
Je n'ai plus d'erreur dans ce cas, mais le fichier n'est toujours pas copié dans mon répertoire newsletter...

Tu sais pourquoi ? je sens que j'approche du but...
AlexisMossay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 21h16   #4
Membre confirmé
 
Avatar de lun4t1k
 
Inscription : janvier 2007
Messages : 276
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2007
Messages : 276
Points : 233
Points : 233
J'avais ce genre d'erreur (je dis bien ce genre)
tu peux essayer de ne pas mettre le chemin absolu mais plutot relatif, avec la variable d'environnement $_SERVER['DOCUMENT_ROOT'].


C'est peut etre pas ça, mais une fois sur le net ca évite pas mal d'e**erdes...
lun4t1k est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 08h39   #5
Invité régulier
 
Alexis Mossay
Inscription : février 2007
Messages : 28
Détails du profil
Informations personnelles :
Nom : Alexis Mossay
Âge : 26

Informations forums :
Inscription : février 2007
Messages : 28
Points : 5
Points : 5
ça marche enfin ...
En fait, honte à moi ^^, mathieu m'avait donné la bonne réponse.
J'avais oublié de concaténer la variable contenant le chemin avec le nom du fichier...

A force de passer ses journées dans le code, on voit plus ses erreurs...
Une bonne nuit de sommeil, voilà ce qu'il me fallait

Merci à vous deux
AlexisMossay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2007, 10h31   #6
Invité régulier
 
Alexis Mossay
Inscription : février 2007
Messages : 28
Détails du profil
Informations personnelles :
Nom : Alexis Mossay
Âge : 26

Informations forums :
Inscription : février 2007
Messages : 28
Points : 5
Points : 5
Je remonte ce topic car j'ai un nouveau problème.
En local, tout fonctionne bien. Quand je mets le site en ligne, ça ne marche plus.

Si j'ai bien compris le système, entre le temps où j'envoie le formulaire et celui où je fait un move_uploaded_file, le fichier est stocké dans un répertoire temporaire.

Donc il faut que je trouve ce répertoire sur le serveur...
Le problème c'est que je vois rien

Voici, la racine du serveur


Une piste ?
AlexisMossay est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2007, 11h36   #7
Membre confirmé
 
Avatar de lun4t1k
 
Inscription : janvier 2007
Messages : 276
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : janvier 2007
Messages : 276
Points : 233
Points : 233
Une fonction non supportée par ton hébergeur?
Une mauvaise indication des chemins?
poste ton code et dit nous où ca plante...
lun4t1k est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/04/2007, 11h45   #8
Invité régulier
 
Alexis Mossay
Inscription : février 2007
Messages : 28
Détails du profil
Informations personnelles :
Nom : Alexis Mossay
Âge : 26

Informations forums :
Inscription : février 2007
Messages : 28
Points : 5
Points : 5
Voici donc le code

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
$uploadDir = '../www/CRIPEL/newsletters/';
$fileName = $_FILES["file"]["name"];
 
$ext = substr($fileName,strrpos($fileName, "."));
$finalFileName = $_POST["month"].$_POST["year"].$ext;
 
if(!file_exists('./newsletters/'.$finalFileName)) {
	if(is_uploaded_file($_FILES["file"]["tmp_name"])) {
		if (eregi("^ph", $ext))
			die("Les fichiers en .ph* ne sont pas autorisés.");
                move_uploaded_file($_FILES["file"]["tmp_name"],$uploadDir.$finalFileName);
	}
Et voici l'erreur générée

Citation:
Warning: move_uploaded_file(../www/CRIPEL/newsletters/JANUARY2001.pdf): failed to open stream: No such file or directory in /home/ftpcripel/www/CRIPEL/admin_newsletters.php on line 32

Warning: move_uploaded_file(): Unable to move '/tmp/phpbqAFNY' to '../www/CRIPEL/newsletters/JANUARY2001.pdf' in /home/ftpcripel/www/CRIPEL/admin_newsletters.php on line 32
A savoir que le fichier php est situé dans le dossier CRIPEL que l'on peut voir sur l'image que j'ai posté plus haut
Tu vois la raison de cette erreur ?
AlexisMossay est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h45.


 
 
 
 
Partenaires

Hébergement Web