Bonjour,
voici min problème.
J'ai un formulaire avec un imput file.
j'ai le traitement php pour traiter le fichier
Lorsque je l'execute : pas d'erreur sauf que je ne peux pas copier le tmp dans un autre dossier car de dossier temporaire pour l'upload est vide alors que le code error est à 0 (donc pas de problème !)
voici le code :
1) formulaire
2) Php
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 <?php /* Date de création: 08/03/2007 */ ?> <html> <body> <?php /* bouton parcourir avec un premier test sur la taille en octets (ici 2Mo : 2097152 octets)*/ echo '<form method="post" action="reception.php" enctype="multipart/form-data">'; echo '<input type="hidden" name="MAX_FILE_SIZE" value="1847300 " />'; echo '<label for="lefichier">Choix du fichier à transférer (Tous formats | max. 2Mo):</label><br><br>'; echo '<input size="80" type="file" name="lefichier" id="lefichier"/><br><br>'; echo '<input type="submit" name="submit" value="Envoyer" />'; echo '</form>'; ?> </body> </html>
3) résultat
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73 <?php /* Date de création: 12/03/2007 */ ?> <html> <body> <?php /* ATTENTION : Mettre les extentions en MAJ */ $extensions_interdites = array( 'EXE' , 'PHP' , 'DLL' , 'BAT', 'CMD', 'VBS' , 'WHS' ); if ($_FILES['lefichier']['error'] > 0){ $erreur = "Erreur lors du tranfsert"; echo $erreur .'<br>'; echo 'Code erreur : '.$_FILES['lefichier']['error'].' => '; /* Gestion des codes erreurs */ switch ($_FILES['lefichier']['error']) { case "1" : echo ' Le fichier téléchargé excède la taille maximum configurée sur le serveur<br>'; break; case "2" : echo ' Le fichier téléchargé excède la taille spécifiée dans le formulaire<br>'; break; case "3" : echo ' Le fichier n\'a été que partiellement téléchargé<br>'; break; case "4" : echo ' Aucun fichier n\'a été téléchargé<br>'; break; case "6" : echo ' Un dossier temporaire est manquant sur le serveur !<br>'; break; case "7" : echo ' Echec de l\'écriture du fichier sur le serveur !<br>'; break; default: echo ' Erreur inconnu !<br>'; } } else { echo '<PRE>'; print_r($_POST) ; print_r($_FILES) ; echo '</PRE>'; echo 'Transfert du fichier '.$_FILES['lefichier']['name'].' en cours... <br>'; echo 'Taille du fichier : '.$_FILES['lefichier']['size'].' octets <br>'; /* Test sur la taille réelle reçue*/ if ($_FILES['lefichier']['size'] > $_POST['MAX_FILE_SIZE'] ){ echo 'Le fichier est trop gros : Transfert annulé ! '; } else { /* Test sur le type de fichier reçu : pas de fichier php ni exe et autre scripts . Basé sur l'extension*/ $extension_dufichier = substr(strrchr($_FILES['lefichier']['name'], '.') ,1); echo 'Type du fichier : '.$extension_dufichier .'<br>'; if ( in_array(strtoupper($extension_dufichier),$extensions_interdites) ){ echo '<br>Type de fichier interdit : Transfert annulé !'; } else { /* Ecriture du fichier temporaire dans un dossier prévu pour cela */ $cible = microtime(); $cible = "/lesloads/".str_replace(' ','',$cible).$_FILES['lefichier']['name']; $resultat = move_uploaded_file($_FILES['lefichier']['tmp_name'],$cible); if ($resultat) { echo "Transfert réussi"; } else { echo "Le transfert vers le serveur a echoué ! <br>"; echo $_FILES['lefichier']['tmp_name'] ; } } } } ?> </body> </html>
Array
(
[MAX_FILE_SIZE] => 1847300
[submit] => Envoyer
)
Array
(
[lefichier] => Array
(
[name] => test.txt
[type] => application/x-javascript
[tmp_name] => C:\Apache\Apache2\htdocs\upload\php7.tmp
[error] => 0
[size] => 60340
)
)
Transfert du fichier test.txt en cours...
Taille du fichier : 60340 octets
Type du fichier : js
Le transfert vers le serveur a echoué !
C:\Apache\Apache2\htdocs\upload\php7.tmp
Partager