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] $_FILES est vide


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 40
    Points : 31
    Points
    31
    Par défaut [Upload] $_FILES est vide
    Bonjour à tous,

    Je suis en train réaliser un petit gestionnaire d'upload et l'upload ne fonctionne pas :

    Le 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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    case "ajouter" :
    echo "
    <form action='".$_SERVER['PHP_SELF']."?action=creer_dossier' method='post'> <br/>
    	<label>Nom du répertoire : </label><br/>
    	<input type='text' name='nom_dossier' maxlength='50' /><br/>
    	<input type='submit' value='Ok !' />";
    break;
     
    case "ajouter_fichier" :
    echo "
    <form action='".$_SERVER['PHP_SELF']."?action=upload' method='post'> <br/>
    	<label>Répertoire :</label>
    	<select name='rep'>";
     
    	 //creation des options de la liste
    	$rep = opendir("./");
    	$i = 0;
    	while ($dossier = readdir($rep)) {
    		if($dossier != '..' && $dossier !='.' && $dossier !='') { 
    			if(is_dir($dossier)){
    				echo "<option value='$dossier'>$dossier</option>";
    			}
    		}
    	}
    	echo "
    	</select>
    	<br/>
    	<label>Fichier : </label>
    	<input type='file' name='fichier' />
    	<input type='submit' value='Ok !' />";
    break;
    Et voici le code d'upload j'ai mis pas mal d'echo pour voir on sa bloque et mes variables provenant du tableau $_FILE sont vide alors qu'avec le POST je reçois bien le nom du 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
    46
    47
    48
     
    case "upload" :
    $fichier = isset($_POST['fichier']) ? $_POST['fichier'] : '';
    $rep = isset ($_POST['rep']) ? $_POST['rep'] : '';
     
    echo "------ MES ENVOIS ------------------";
    echo "<br/>je suis rentré dans mon cas d'upload";
    echo "<br/> Nom di fichier reçu en POST :".$fichier;
    echo "<br/> Dossier de destintation : ".$rep;
     
     
    if(isset($_POST['fichier']) ) {
     
    echo "<br/><br/>---------SCRIPT --------------";
     
    	$cheminFichier = $rep."/";
    	$tmp_file = $_FILES['fichier']['tmp_name'];
    	$type_file = $_FILES['fichier']['type'];
    	$name_file = $_FILES['fichier']['name'];
     
     
     
    //  echo $_FILES['fichier']['error']; NE RENVOIE PAS D ERREUR
     
    echo "<br/>Stockage du fichier dans : ".$cheminFichier;
    echo "<br/> Nom temporaire : ".$tmp_file; // VIDE
    echo "<br/> Type du fichier : ".$type_file; // VIDE
    echo "<br/> Nom du fichier : ".$name_file; //VIDE
     
    break; // simplement pour afficher les result (je sais, c'est bourrin) 
     
    	if( !is_uploaded_file($tmp_file) ){
    		exit("Le fichier est introuvable");
    	}
     
    	if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') ){ 
    		exit("Le fichier n'est pas une image"); 
    	}
     
     
    	if( !move_uploaded_file($tmp_file, $cheminFichier . $name_file) ) {
    		exit("Impossible de copier le fichier dans $content_dir");
    	}
     
    echo "Le fichier a bien été uploadé";
     
    }
    break;
    Merci d'avance, j'ai vraiment besoin d'aide !!!

    Nico

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Les données relatives à un fichier uploadé ne se situent en aucun cas dans $_POST (vos premiers tests pour $fichier) et il vous manque l'attribut enctype (enctype="multipart/form-data") à votre formulaire.

    Je vous invite à consulter le tutoriel Upload de fichiers en PHP où vous trouverez toute la marche à suivre.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 40
    Points : 31
    Points
    31
    Par défaut
    oups ! j'ai effectivement oublié le enctype

    en ce qui concerne le $_POST c'est juste sympa de verifier que ce que j'envoie n'est pas vide... j'aime bien les longcourcci ....

    Merci beaucoup pour votre aide, je vais m'empressé de lire les divers articles que vous me conseillez.

    Nico

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Citation Envoyé par acidline
    en ce qui concerne le $_POST c'est juste sympa de verifier que ce que j'envoie n'est pas vide... j'aime bien les longcourcci ...
    Oui mais c'est bien $_FILES['fichier'] qu'il faut tester et non $_POST['fichier']. Nous en avons discuté à plusieurs reprises, vous avez notamment la possibilité d'utiliser les codes d'erreur à cette fin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($_FILES['fichier']['error'] == UPLOAD_ERR_NO_FILE) {
       // Aucun fichier n'a été envoyé
    }

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 40
    Points : 31
    Points
    31
    Par défaut
    oui c'est vrai, pardon !!! je dis n'importe quoi...

    merci pour l'info pour $_file['fichier']['error'] == UPLOAD_ERR_NO_FILE,
    je ne connaissais pas du tout

    Merci de votre aide !

Discussions similaires

  1. [Upload] $_FILES vide
    Par reventlov dans le forum Langage
    Réponses: 3
    Dernier message: 21/10/2009, 14h35
  2. tester si le résultat d'une requete est vide
    Par monstour dans le forum ASP
    Réponses: 13
    Dernier message: 04/10/2006, 14h14
  3. [JDBC]tester si une table est vide
    Par zozolh2 dans le forum JDBC
    Réponses: 5
    Dernier message: 28/05/2004, 09h17
  4. Ne pas afficher un champs qui est vide dans ma BD
    Par yoda_style dans le forum ASP
    Réponses: 3
    Dernier message: 27/04/2004, 11h40
  5. [CR] Avoir seulement une page blanche qd la base est vide???
    Par littleChick dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 13/08/2002, 18h26

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