Bonjour,

Avec un script d'upload de fichier via un formulaire, je n'arrive pas à récupérer mon fichier

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
print_r($_FILES);
 
if ($_FILES['fichier']['error']) {
          switch ($_FILES['fichier']['error']){
                   case 1: // UPLOAD_ERR_INI_SIZE
                   echo "Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !";
                   break;
                   case 2: // UPLOAD_ERR_FORM_SIZE
                   echo "Le fichier dépasse la limite autorisée dans le formulaire HTML !";
                   break;
                   case 3: // UPLOAD_ERR_PARTIAL
                   echo "L'envoi du fichier a été interrompu pendant le transfert !";
                   break;
                   case 4: // UPLOAD_ERR_NO_FILE
                   echo "Le fichier que vous avez envoyé a une taille nulle !";
                   break;
          }
}
else {
 // $_FILES['nom_du_fichier']['error'] vaut 0 soit UPLOAD_ERR_OK
 // ce qui signifie qu'il n'y a eu aucune erreur
}
 
$tmp_file = $_FILES['fichier']['tmp_name'];
echo $tmp_file." ";
 
    if( !is_uploaded_file($tmp_file) )
    {
        echo "Le fichier est introuvable";
    }
    else
    {
        echo "le fichier a ete trouvé";
    }
 
    $content_dir = 'client/';
    $name_file = $_FILES['fichier']['name'];
 
 
    if( !move_uploaded_file($tmp_file, $content_dir) )
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }
 
    echo "Le fichier a bien été uploadé";
le print_r($_FILES) me donne le résultat suivant :

Array ( [fichier] => Array ( [name] => Réseau Laser Office 2007.pdf [type] => application/pdf [tmp_name] => C:\PROGRA~1\EASYPH~1\\tmp\php95.tmp [error] => 0 [size] => 718084 ) )
Pour moi, tout s'est bien passé, le champ erreur renvoie 0.

Qd je regarde dans le répertoire tmp_name, je ne vois pas le fichier.

Pouvez-vous me donnez quelques billes, je ne comprends pas ?

Je suis sur un serveur en local.

Voici la config de mon php.ini :
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = "${path}\tmp\"

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M
Merci d'avance.