我正在尝试使用Jquery编写一个ajax上传器。 在html中我可以写一个多上传字段,如:
<input type='file' multiple='multiple' name='files[]'>
但是,我怎样才能从这个字段中获取值? 我用的时候:
$('input[type='file']').val();
或
$('input[type='file']').attr('value');
我只获得了我选择上传的第一个文件的文件名。有没有办法让我得到一个包含所有文件的数组?
答案 0 :(得分:8)
HTML5 Files API表示input
将拥有files
属性。您可以像这样访问它:
var fileList = document.getElementById("yourInput").files;
返回FileList
,我相信它是一个类似于数组的对象,包含用户选择的所有文件,因此您可以正常迭代它:
for(var i = 0; i < fileList.length; i++) {
//Do something with individual files
}
但是它不适用于不支持HTML5的浏览器,我认为在版本9之前它不支持IE。如果那些旧的浏览器对你很重要,那么最好的选择可能就是使用基于Flash或Java的上传器。