POST Upload PHP

Résolu
Bonjour à vous,

J'ai une question un peu bête, mais comment fait t'on pour récupérer, lors de l'upload d'une image dans un formulaire, le nom de cette image et son extension ?

C'est pour pouvoir l'inscrire dans une bdd par la suite.

Merci à vous

5 réponses

  1. Je vais tester cela, je te remercie maître Jedi !
    1. Fais bien attention, il faut que ta page soit appelé : upload.php ou alors tu met # en action ;)
  2. Oui tu as tout à fais compris, par contre il faut que tu créer un dossier upload à la racine de la page.
    1. PS : tu peux testé comme ceci :
      Après cette ligne :  echo 'Upload effectué avec succès !'; 
          
      >> echo $fichier;
  3. Merci à toi pour ta réponse,

    Donc si j'ai bien compris ( ne me brûle pas si ce n'est pas le cas lol ) c'est cette ligne qui "mémorise" le nom de l'image:

    $fichier = basename($_FILES['avatar']['name']);

    Si je rentre $fichier dans ma base de donnée, je devrais avoir le nom de l'image ?
    1. Hello
      Je vais te donner la solution à ton problème !
      <form method="POST" action="upload.php" enctype="multipart/form-data">
           <!-- On limite le fichier à 100Ko -->
           <input type="hidden" name="MAX_FILE_SIZE" value="100000">
           Fichier : <input type="file" name="avatar">
           <input type="submit" name="envoyer" value="Envoyer le fichier">
      </form>
      <?php
      if(isset($_POST['envoyer']))
      {
      
      $dossier = 'upload/';
      $fichier = basename($_FILES['avatar']['name']);
      $taille_maxi = 100000;
      $taille = filesize($_FILES['avatar']['tmp_name']);
      $extensions = array('.png', '.gif', '.jpg', '.jpeg');
      $extension = strrchr($_FILES['avatar']['name'], '.'); 
      //Début des vérifications de sécurité...
      if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
      {
           $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
      }
      if($taille>$taille_maxi)
      {
           $erreur = 'Le fichier est trop gros...';
      }
      if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
      {
           //On formate le nom du fichier ici...
           $fichier = strtr($fichier, 
                'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 
                'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
           $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
           if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //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 !';
           }
      }
      else
      {
           echo $erreur;
      }
      }
      ?>


      Si tu ne comprend pas quelques choses, dis le mois, je ferais en sortes de t'expliquer.