IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Upload] Problème avec l'upload : Pas de fichier tmp !


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Points : 18
    Points
    18
    Par défaut [Upload] Problème avec l'upload : Pas de fichier tmp !
    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
    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>
    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
    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>
    3) résultat
    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

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Le dossier "/lesloads" n'existe pas dans un système de fichiers Windows

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Points : 18
    Points
    18
    Par défaut Bravo
    Merci,
    Qu'elle rapidité

    J'ai remplacer pour un test :

    $cible = "/lesloads/".str_replace(' ','',$cible).$_FILES['lefichier']['name'];

    Par :

    $cible = "c:\\lesloads\\".str_replace(' ','',$cible).$_FILES['lefichier']['name'];

    J'ai bien créer ce dossier

    ET.... Nickel
    Je suis vraiment un peu trop bête... Mais je débute en php alors je me trouve une bonne excuse qui n'as rien à voir avec le php lui même (c'est du système)

    Ps : cela marche mais je n'ai rien dans le tmp : il le supprme aussitot ?

    Merci encore

  4. #4
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    move_uploaded_files

  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 21
    Points : 18
    Points
    18
    Par défaut merci
    Merci... vraiment trop bête aujourd'hui

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec l'upload des fichiers
    Par bousyass dans le forum JSF
    Réponses: 6
    Dernier message: 03/06/2010, 14h37
  2. [Upload] Problème suite à un upload de fichier
    Par rieppe dans le forum Langage
    Réponses: 6
    Dernier message: 28/08/2007, 17h20
  3. [Upload] Problème avec move_uploaded_file
    Par baleiney dans le forum Langage
    Réponses: 2
    Dernier message: 25/12/2006, 18h59
  4. [Upload] Problème avec un move_uploaded_file
    Par Death83 dans le forum Langage
    Réponses: 14
    Dernier message: 23/04/2006, 20h38
  5. [Upload] Problème avec Force download
    Par bannik dans le forum Langage
    Réponses: 8
    Dernier message: 30/12/2005, 12h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo