POST Upload PHP

Résolu
Solar13 Messages postés 214 Statut Membre -  
Solar13 Messages postés 214 Statut Membre -
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. MastercroW Messages postés 1259 Date d'inscription   Statut Membre Dernière intervention   163
     
    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.
    0
  2. Solar13 Messages postés 214 Statut Membre
     
    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 ?
    0
  3. MastercroW Messages postés 1259 Date d'inscription   Statut Membre Dernière intervention   163
     
    Oui tu as tout à fais compris, par contre il faut que tu créer un dossier upload à la racine de la page.
    0
    1. MastercroW Messages postés 1259 Date d'inscription   Statut Membre Dernière intervention   163
       
      PS : tu peux testé comme ceci :
      Après cette ligne :  echo 'Upload effectué avec succès !'; 
          
      >> echo $fichier;
      0
  4. Solar13 Messages postés 214 Statut Membre
     
    Je vais tester cela, je te remercie maître Jedi !
    0
    1. MastercroW Messages postés 1259 Date d'inscription   Statut Membre Dernière intervention   163
       
      Fais bien attention, il faut que ta page soit appelé : upload.php ou alors tu met # en action ;)
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Solar13 Messages postés 214 Statut Membre
     
    Ça marche nickel !
    Merci à toi !!
    0