[php] upload de fichier

Résolu
brudao Messages postés 553 Statut Membre -  
brudao Messages postés 553 Statut Membre -
Bonjour,
je n'arrive pas a recupérer un fichier en php.
je vous affiche un bout du code:

<form name="form1" method="post" action="">

<input type="hidden" name="nom"> <input type="File" name="fichier" />
<input type="submit" name="Submit" value="Inserer" /> </form>

<?php

if (isset($_POST['Nom']))

{

$file = $_FILES['fichier']['tmp_name'];

$file_tmp =$file['tmp_name'];

$nomfichier=$_FILES['fichier']['name'];

?>

lorsque j'execute, il me dit undefined vaiable 'fichier';
ce qui est normal mais je n'arrive pas a corriger.
puisque 'fichier' est posté, donc je ne sais pas comment le recuperer correctement
Configuration: Linux
Firefox 2.0.0.13

5 réponses

  1. el_linwin Messages postés 517 Date d'inscription   Statut Membre 90
     
    Bonjour brudao,

    Si le code HTML et le code PHP sont dans le même fichier, je pense qu'il y a un problème.

    Le code HTML devrait être quelque-chose du genre:
    <form name="form1" method="post" action="traite_fichier.php" enctype="multipart/form-data"> 
    
    
    <input type="hidden" name="nom"> <input type="File" name="fichier" /> 
    <input type="submit" name="Submit" value="Inserer" /> </form>
    


    Puis, mettre le code dans traite_fichier.php (par exemple):
    <?php 
    
    if (isset($_POST['Nom'])) 
    
    { 
    
    
    
    $file = $_FILES['fichier']['tmp_name']; 
    
    $file_tmp =$file['tmp_name']; 
    
    $nomfichier=$_FILES['fichier']['name']; 
    
    
    
    
    ?>
    


    Cordialement,
    el_linwin
    0
    1. brudao Messages postés 553 Statut Membre 14
       
      Merci el_liwin,
      c'est ça qui manquait au niveau du form, c'est obligatoire: enctype="multipart/form-data"
      donc ça devrait etre:
      form name="form1" method="post" action="traite_fichier.php" enctype="multipart/form-data">

      mais j'ai un autre probleme encore, lorsque je faire le uploaded, il n'ya pas d'erreur mais je ne vois pas le fichier.

      $nomfichier = $_FILES['fichier']['name'];

      $dossier = 'Doc/';

      $file_tmp =$_FILES['fichier']['tmp_name'];

      if(move_uploaded_file($file_tmp, $dossier . $nomfichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
      {
      echo 'Upload effectué avec succès !';
      }

      else //Sinon (la fonction renvoie FALSE).
      {
      echo 'Echec de l\'upload !';
      }
      0
  2. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    Bonjour,

    Je te conseilles de bien comprendre comment fonctionne un formulaire en premier, et ensuite tu pourra y mettre un upload de fichier.
    Pour ce qui est de trouver des tutoriaux sur la façon de faire un formulaire en PHP, tu en trouvera plein sur google en tapant : formulaire php tutoriel

    Bon courage.

    EDIT: ne pas prendre en compte ce post puisque déjà répondu entre temps.
    0
  3. brudao Messages postés 553 Statut Membre 14
     
    Merci el_liwin,
    c'est ça qui manquait au niveau du form, c'est obligatoire: enctype="multipart/form-data"
    donc ça devrait etre:
    form name="form1" method="post" action="traite_fichier.php" enctype="multipart/form-data">

    mais j'ai un autre probleme encore, lorsque je faire le uploaded, il n'ya pas d'erreur mais je ne vois pas le fichier.

    $nomfichier = $_FILES['fichier']['name'];

    $dossier = 'Doc/';

    $file_tmp =$_FILES['fichier']['tmp_name'];

    if(move_uploaded_file($file_tmp, $dossier . $nomfichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
    {
    echo 'Upload effectué avec succès !';
    }

    else //Sinon (la fonction renvoie FALSE).
    {
    echo 'Echec de l\'upload !';
    }
    0
  4. el_linwin Messages postés 517 Date d'inscription   Statut Membre 90
     
    Bonjour brudao,

    Attention: $nomfichier (qui a la valeur de $_FILES['fichier']['name']) contient le nom, mais aussi le chemin du fichier sur la machine d'origine (le client donc). C'est pour cela que le fichier est introuvable (double chemin = invalide).

    Il faut élaguer la partie chemin de $nomfichier avant de l'utiliser dans: move_uploaded_file($file_tmp, $dossier . $nomfichier)

    Cordialement,
    el_linwin
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. brudao Messages postés 553 Statut Membre 14
     
    Merci el_liwin!
    ça marche,
    0