Comment sélectionner plusieurs fichiers avec?

Comment sélectionner plusieurs fichiers avec <input type="file">?

50
demandé sur approxiblue 2009-10-20 12:42:36

9 réponses

Nouvelle réponse:

En HTML5, vous pouvez ajouter l'attribut multiple pour sélectionner plus d'un fichier.

<input type="file" name="filefield" multiple="multiple">

Ancienne réponse:

Vous ne pouvez sélectionner que 1 Fichier par <input type="file" />. Si vous voulez envoyer plusieurs fichiers vous devrez utiliser plusieurs balises d'entrée ou utiliser Flash ou Silverlight.

49
répondu ZippyV 2016-05-02 15:31:22

Il y a aussi HTML5 <input type="file" multiple /> (Spécification ).

Le support du navigateur est assez bon sur le bureau (tout simplement pas pris en charge par IE 9 et avant), moins bon sur mobile, je suppose que c'est plus difficile à implémenter correctement en fonction de la plate-forme et de la version.

63
répondu Niavlys 2018-04-19 13:27:38

Le tout devrait ressembler à:

<form enctype='multipart/form-data' method='POST' action='submitFormTo.php'> 
    <input type='file' name='files[]' multiple />
    <button type='submit'>Submit</button>
</form>

Assurez-vous que vous avez l'attribut enctype='multipart/form-data' dans votre balise <form>, ou vous ne pouvez pas lire les fichiers Côté Serveur après la soumission!

14
répondu mark.inman 2013-05-22 21:34:50

Ce plugin jQuery (démo de téléchargement de fichiers jQuery ) le fait sans flash, sous la forme qu'il utilise:

<input type='file' name='files[]' multiple />
12
répondu DigitalDaigor 2012-11-13 00:50:42

Vous pouvez le faire maintenant avec HTML5

En substance, vous utilisez l'attribut multiple sur l'entrée du fichier.

<input type='file' multiple>
7
répondu Costa 2013-07-05 22:35:54

HTML5 a fourni un nouvel attribut multiple pour l'élément d'entrée dont l'attribut de type est file. Ainsi, vous pouvez sélectionner plusieurs fichiers et IE9 et les versions précédentes ne supportent pas cela.

NOTE: soyez prudent avec le nom de l'élément d'entrée. lorsque vous souhaitez télécharger plusieurs fichiers vous devez utiliser array et non string comme valeur du fichier nom de l'attribut.

Ex: input type="file" name="myPhotos[]" multiple="multiple"

Et si vous utilisez php, vous obtiendrez les données $_FICHIERS et utilisez var_dump ($_FILES) et voir la sortie et faire le traitement Maintenant, vous pouvez itérer et faire le reste

1
répondu Arjun J Gowda 2013-11-21 10:39:05
<form action="" method="post" enctype="multipart/form-data">
<input type="file" multiple name="img[]"/>
<input type="submit">
</form>
<?php
print_r($_FILES['img']['name']);
?>
0
répondu Anowar Hossain 2014-06-13 19:58:14

C'est facile ...

<input type='file' multiple>
$('#file').on('change',function(){
     _readFileDataUrl(this,function(err,files){
           if(err){return}
           console.log(files)//contains base64 encoded string array holding the 
           image data 
     });
});
var _readFileDataUrl=function(input,callback){
    var len=input.files.length,_files=[],res=[];
    var readFile=function(filePos){
        if(!filePos){
            callback(false,res);
        }else{
            var reader=new FileReader();
            reader.onload=function(e){              
                res.push(e.target.result);
                readFile(_files.shift());
            };
            reader.readAsDataURL(filePos);
        }
    };
    for(var x=0;x<len;x++){
        _files.push(input.files[x]);
    }
    readFile(_files.shift());
};
0
répondu Francis Thiong'o 2017-11-30 14:32:15

Copiez et collez ceci dans votre html:

<input type="file" id="files" name="files[]" multiple />
<output id="list"></output>

<script>
function handleFileSelect(evt) {
var files = evt.target.files; // FileList object

// files is a FileList of File objects. List some properties.
var output = [];
for (var i = 0, f; f = files[i]; i++) {
  output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ',
              f.size, ' bytes, last modified: ',
              f.lastModifiedDate ? f.lastModifiedDate.toLocaleDateString() : 'n/a',
              '</li>');
}
document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>';
}

Cela vient à vous, à travers moi, de cette page web: http://www.html5rocks.com/en/tutorials/file/dndfiles/

-1
répondu collyg 2015-01-05 09:50:17