POST Upload PHP

Résolu/Fermé
Solar13 Messages postés 204 Date d'inscription lundi 23 mai 2011 Statut Membre Dernière intervention 14 mai 2014 - 30 oct. 2011 à 14:43
Solar13 Messages postés 204 Date d'inscription lundi 23 mai 2011 Statut Membre Dernière intervention 14 mai 2014 - 31 oct. 2011 à 08:13
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
A voir également:

5 réponses

MastercroW Messages postés 1094 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
30 oct. 2011 à 15:08
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
Solar13 Messages postés 204 Date d'inscription lundi 23 mai 2011 Statut Membre Dernière intervention 14 mai 2014
30 oct. 2011 à 15:23
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
MastercroW Messages postés 1094 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
30 oct. 2011 à 15:26
Oui tu as tout à fais compris, par contre il faut que tu créer un dossier upload à la racine de la page.
0
MastercroW Messages postés 1094 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
Modifié par MastercroW le 30/10/2011 à 15:26
PS : tu peux testé comme ceci :
Après cette ligne :  echo 'Upload effectué avec succès !'; 
    
>> echo $fichier;
0
Solar13 Messages postés 204 Date d'inscription lundi 23 mai 2011 Statut Membre Dernière intervention 14 mai 2014
30 oct. 2011 à 15:42
Je vais tester cela, je te remercie maître Jedi !
0
MastercroW Messages postés 1094 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 31 mai 2019 163
30 oct. 2011 à 15:44
Fais bien attention, il faut que ta page soit appelé : upload.php ou alors tu met # en action ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Solar13 Messages postés 204 Date d'inscription lundi 23 mai 2011 Statut Membre Dernière intervention 14 mai 2014
31 oct. 2011 à 08:13
Ça marche nickel !
Merci à toi !!
0