Php recuperer post input file

Résolu
Bonjour,
j ai dans mon script php un champ input file pour joindre un fichier que je souhaite insérer dans ma base de données

il s'agit de fichier image

<form enctype="multipart/form-data" action="import.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="60000" />
Image : <input name="file_send" type="file" />
<input type="submit" value="Envoyer" />
</form>

1) quel doit être la structure de mon champ upload_image (char , ...) dans ma table
2) comment récupérer le POST "file_send"

je sais que pour un valeur texte c'est du genre if(isset($_POST['nom'])) ... la je ne vois pas

Merci de votre aide
Configuration: Windows Vista
Firefox 3.0.11

16 réponses

  1. oufffff ! HAHAHA comme quoi je suis pas le seul à devoir farfouiller mes codes ;)
    1. Problème résolu !!! et ça venait de mon input le type et le name avait la même valeur "file" j'ai modifié ça et ça fonctionne.

      Merci a tous et en particulier à jambondardennes pour ses efforts
      1. Donc le problème vient du tableau vu que tu as array.

        Au lieu de $extension = strrchr($_FILES['file']['name'], '.');

        essaies $extension[] = strrchr($_FILES['file']['name'], '.');
        1. quand je mets un echo devant extension voila le resultat

          ArrayVous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...

          merci de votre aide
          1. l'echec de l'upload doit venir du fait que soit tu n'as pas de dossier upload pour qu'il mette le fichier dedans, soit que le dossier upload n'est pas à l'endroit que tu indiques.
            1. ah la ca passe j ai un "echec de l'upload" mais plus de probleme d'extension ...
              1. if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau

                Modifies cette ligne et fais :
                if ($extension==".jpg")
                1. ça ça marche... c'est ailleurs que se trouve le problème
              2. Enlèves les points dans la ligne des extensions acceptées voir
                1. le fichier que j essaye d ajouter est un .jpg j ai esaye avec d'autre extensions autorisés mais pareil...
                  1. Cette partie du code fonctionne très bien. As tu pensé à vérifier la casse de l'extension car si ton fichier s'apelle .JPG ça ne fonctionne pas...
                    1. S'il te bloque c'est à cette ligne surement :
                      $extensions = array('.png', '.gif', '.jpg', '.jpeg');
                      Vérifies que le fichier en question porte les extensions suivantes : .png, .gif, .jpg ou .jpeg
                      Si tu as besoin d'accepter d'autres extensions il te suffit de les rajouter dans la liste :
                      $extensions = array('.png', '.gif', '.jpg', '.jpeg', '.nouvelleextension');
                      1. Merci pour la réponse j ai utilisé ce script mais il me bloque au nivau des extensions même les bonnes je ne comprends pas merci

                        le message d'erreur :

                        Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...

                        Le script :

                        $dossier = 'upload/';
                        $fichier = basename($_FILES['file']['name']);
                        $taille_maxi = 100000;
                        $taille = filesize($_FILES['file']['tmp_name']);
                        $extensions = array('.png', '.gif', '.jpg', '.jpeg');
                        $extension = strrchr($_FILES['file']['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['file']['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;
                        }
                        ?>
                        1. Pour récupérer des fichier uploadés, il faut utiliser $_FILES.

                          Petite explication ici:
                          http://www.commentcamarche.net/faq/sujet 889 php upload de fichiers