Salut,
j'ai un formulaire de fichier qui marche une fois sur 2 ... Disons plus précisément qu'il n'uploade pas *systématiquement* au bon endroit ...
Ci dessous le code, et les essais.
Coté HTML :
Code :
- <p><label for="file_0">Joindre le fichier (256 ko max.)</label><input type="file" id="file_0" name="uploadfile_0" /></p>
|
(le formulaire a une méthode post et l'enctype en multipart/form-data)
coté PHP, je le récupère avec un move_uploaded_file.
Je fais un print_r($_FILES) juste avant le move_uploaded_files.
La condition :
Code :
- print_r($_FILES);
- echo "<br />\n1 : ".getcwd()."<br />\n";
- $uploaddir = '../upload/files/';
- opendir($uploaddir);
- chdir($uploaddir);
- echo "<br />\n2 : ".getcwd()."<br />\n";
- if (!empty($_FILES['uploadfile_0']['name']))
- {
- $uploadfile = basename($_FILES['uploadfile_0']['name']);
- echo "**".$uploadfile;
- if (move_uploaded_file($_FILES['uploadfile_0']['tmp_name'], $uploadfile))
- {
- echo '<p class="ok">Téléchargement du fichier '.$uploadfile.' réussi !</p>'."\n";
- }
- else
- {
- echo '<p class="nok">Erreur téléchargement fichier '.$uploadfile.'</p>'."\n";
- };
- };
|
(je vous passe les détails HTML)
En fait, lorsque je suis dans le formulaire (j'ai mis un echo "<br />\n0 : ".getcwd()."<br />\n"; avant le formulaire) j'ai ce chemin :
G:\www\dossier\script (jusque là, ok, je suis sous WAMP 1.7.2.)
Je mets un fichier, j'uploade. Mes marqueurs 1 et 2 m'indiquent :
Citation :
Array ( [uploadfile_0] => Array ( [name] => fichier_test.txt [type] => text/plain [tmp_name] => gwamp/tmp\phpAF.tmp [error] => 0 [size] => 51 ) )
1 : G:\www\dossier\script
2 : G:\www\dossier\upload\files
**fichier_test.txt
Téléchargement réussi de la pièce jointe fichier_test.txt
|
Et surprise, le fichier n'est pas dans upload/files ... mais dans wamp\Apache2 !
Lorsque je refais exactement la même manip juste après, avec le même fichier, il se place bien dans upload/files
Si je refais la même manip avec un fichier différent, celui-ci se place dans wamp\Apache2 ...
Le problème est bêtement une question de dossier, je ne vois pas vraiment la différence entre opendir et chdir, tous 2 pointent vers le dossier passé par paramètre mais vu que tous mes essais ont les 2 commandes, je ne comprends pas que ça marche un coup et pas l'autre. Je suis en train de faire des essais dessus. Visiblement opendir seul ne marche pas plus.
Peut-être avez-vous de quoi éclairer ma lanterne ? Merci !
Message édité par NewsletTux le 04-09-2007 à 15:46:09