IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Upload de fichiers multiples avec $_FILES


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de sebmag
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2009
    Messages : 52
    Points : 49
    Points
    49
    Par défaut Upload de fichiers multiples avec $_FILES
    Bonjour,

    Depuis quelques temps, je sèche pour uploader plusieurs fichiers à partir d'un formulaire. Dans un input type file avec multiple en option, j'envoie plusieurs fichiers vers un script php. jusque-là pas de problème ! Je peux envoyer 1 et 2 fichiers à la fois mais pas plus (c'est ça le problème). Est-ce que quelqu'un parmi vous saurait pourquoi ? Merci par avance.
    Voici mon code HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <form class="was-validated" method="post" action="./upload.php" enctype="multipart/form-data">
        <div class="form-group">
            <p>Envoyer des images :</p>
            <label class="custom-file">
                <input type="file" id="fic" name="fic[]" accept="image/*" multiple="multiple">
            </label>
        </div>
        <div class="form-group">
            <label for="gal">Dans la galerie :</label>
            <select class="custom-select d-block my-3" id="gal" name="gal" required="required">
                 <option value="">Choisir une galerie...</option>
                 <option value="1">1</option>
                 <option value="2">2</option>
                 <option value="3">3</option>
                 <option value="4">4</option>
            </select>
        </div>
        <input type="submit" class="btn" name="submit" value="Envoyer">
    </form>
    Et le fichier upload.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
    <?php
     
    if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST")
    {
        if(count($_FILES['fic']['name']) > 0)
        {
            echo "Ok !";
     
            $qte = count($_FILES['fic']['name']);
     
            echo "Qte de fichier = ".$qte;
        }
        else
        {
            echo "Aucun fichier pr&eacute;sent ! <a href='./'>Retour</a>";
        }
    }
    else
    {
         echo "Formulaire non recu !!!";
    }
     
    ?>
    Si je sélectionne plus de 2 fichiers, upload.php ne reçoit pas les données du formulaire ! Une petite idée ???

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as contrôlé ce que contenait $_FILES ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club Avatar de sebmag
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2009
    Messages : 52
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Tu as contrôlé ce que contenait $_FILES ?
    Oui, avec 2 fichiers et print_r j'ai ce résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Array ([name] => Array( 
    [0] => maison.jpg             
    [1] => network-1572617_1920.jpg)      
    [type] => Array(
    [0] => image/jpeg             
    [1] => image/jpeg)      
    [tmp_name] => Array(             
    [0] => C:\wamp\tmp\php1027.tmp             
    [1] => C:\wamp\tmp\php1028.tmp)      
    [error] => Array(
    [0] => 0             
    [1] => 0)      
    [size] => Array(             
    [0] => 404351             
    [1] => 474270)  
    )
    Donc là tout va bien (je pense ?!) et avec 3 fichiers sélectionnés j'ai une erreur du type : Notice: Undefined index: fic in ...upload.php on line 5.
    [SIZE=2]J'ai l'impression que le formulaire ne transmet pas le contenu de l'input file !!!

    EDIT: Dans mon php.ini j'ai upload_max_filesize = 64M et max_file_uploads = 20 . Je viens de voir en redémarrant Wamp que cette erreur s'est affichée : "Warning: POST Content-Length of 4595226 bytes exceeds the limit of 3145728 bytes in Unknown on line 0" mais je ne sais pas trop où on peut changer cette limite.

    EDIT 2: J'ai trouvé !!! La variable post_max_size était à 3M dans le php.ini. Je viens de la passer à 20M et les fichiers passent. Merci pour votre aide.


  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Notice: Undefined index: fic in ...upload.php on line 5.
    J'ai l'impression que le formulaire ne transmet pas le contenu de l'input file !!!
    Pourquoi tu as regardé la résultat de ton print_r() quand ça marchait mais pas quand ça marchait pas ? tu aurais eu la réponse tout de suite.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Si besoin tu pourrais utiliser ce module d'upload si tu n'as pas la main sur les réglages du serveur distant.

    Il permet de surpasser les configurations serveur "post-max-size", "upload_max_filesize" et "max_file_uploads" sur les serveurs mutualisés, propose le retour d'informations en temps réel et la reprise des uploads interrompus. Ce module est complet et prêt à l'emploi donc suffit de dézipper le dossier puis de le placer sur ton serveur pour faire les premiers tests.

  6. #6
    Membre du Club Avatar de sebmag
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Novembre 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Novembre 2009
    Messages : 52
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message
    Si besoin tu pourrais utiliser ce module d'upload si tu n'as pas la main sur les réglages du serveur distant.
    Il permet de surpasser les configurations serveur "post-max-size", "upload_max_filesize" et "max_file_uploads" sur les serveurs mutualisés, propose le retour d'informations en temps réel et la reprise des uploads interrompus. Ce module est complet et prêt à l'emploi donc suffit de dézipper le dossier puis de le placer sur ton serveur pour faire les premiers tests.
    Génial, merci ! Je vais tester ça tout de suite, ça m'évitera de réinventer la roue.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Spip] Upload gros fichier (64Mo)
    Par jeromeenligne dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 15/06/2011, 10h12
  2. [1.x] upload de fichiers multiple avec AJAX ou jQuery
    Par CobraSA dans le forum Symfony
    Réponses: 6
    Dernier message: 21/01/2011, 15h52
  3. [Upload] Upload un fichier sans utiliser $_File
    Par Delphi-ne dans le forum Langage
    Réponses: 10
    Dernier message: 14/09/2008, 20h11
  4. Upload de fichier multiple sous Internet Explorer
    Par polothentik dans le forum Langage
    Réponses: 1
    Dernier message: 04/07/2008, 09h17
  5. Réponses: 8
    Dernier message: 15/10/2006, 18h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo