$_files : Fichier telecharge mais introuvable

Résolu
Bonjour,

J'essaye de télécharger un fichier via un formulaire classique mais une fois télécharger, le fichier est introuvable par le système. Mais où qu'il est ??? :-).

Logiciel : WAMP, php 5.2.6, Apache 2.2.8, window XP, compte administrateur

Dans PHP.ini, le téléchargement est autorisé avec file_uploads = On et une limite à 50 Mo (upload_max_filesize = 50M). Le répertoire temporaire est upload_tmp_dir = "c:/wamp/tmp".

Lorsque je télécharge mon fichier, en faisant un print_r de la variable accueillant le fichier à télécharger, j'ai :
Array ( [ajtDoc] => Array ( [name] => X-65F.pdf [type] => application/pdf [tmp_name] => C:\wamp\tmp\php34.tmp [error] => 0 [size] => 2928018 ) )

Donc d'après cette ligne, le téléchargement s'est correctement effectué ([error] => 0) et le fichier devrait, le temps de l'exécution du script, se trouver là (C:\wamp\tmp\php34.tmp).

Or lorsque, juste après le print_r, je rajoute la ligne :
move_uploaded_file($_FILES['ajtDoc']['tmp_name'], $chemin_destination.$_FILES['ajtDoc']['name']);
j'ai l'erreur suivante :
Warning: move_uploaded_file(c:\wamp\www\convention\X-65F.pdf) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\wamp\www\scsm\convention\modif\document\ajout.php on line 12

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\wamp\tmp\php37.tmp' to 'c:\wamp\www\convention\X-65F.pdf' in C:\wamp\www\scsm\convention\modif\document\ajout.php on line 12

avec :
$chemin_destination = "c:\\wamp\\www\\convention\\";

J'ai fait les "echo" suivant :
echo $_FILES['ajtDoc']['tmp_name'] => C:\wamp\tmp\php37.tmp
echo $chemin_destination.$_FILES['ajtDoc']['name'] => c:\wamp\www\convention\X-65F.pdf (répertoire qui existe)

D'après ce que je comprends, le fichier téléchargé dans le répertoire temporaire n'est pas trouvé. Pourtant, il n'y a pas eu d'erreur et dans le log, à part les deux lignes précédemment citées, aucune autre erreur est remontée.

Ca sent l'erreur gros comme la Porte d'Aix mais je ne la vois pas.

Mais que se passe t-il ?

4 réponses

  1. Ok c'est résolu. Un des répertoires (c:\wamp\www\covention) physique était mal orthographié.
    3
    1. Bonjour,

      J'ai regardé vraiment vite fait et j'ai vu une chose étrange:
      $chemin_destination = "c:\\wamp\\www\\convention\\";


      Ca ne serait pas plutot :
      $chemin_destination = "c:\wamp\www\convention\";
      1
      1. Merci de ta réponse DoulyCreations,

        $chemin_destination = "c:\wamp\www\convention\"; va causer un problème de compilation php puisque l'\ échappant le caractère suivant les " finales ne vont pas être prises comme clôture d'une déclaration de variable string mais faisant partie de cette variable.

        Cependant, il est vrai que j'aurai pu mettre :
        $chemin_destination = "c:\wamp\www\convention\\";
        J'ai quand même essayé avec cette dernière ligne mais cela ne fonctionne pas.
        1
        1. Résolu,
          je crois qu'on n'aurait pas trouvé :)
          0