Javascript获取文件的数量和文件的文件input元素与多个属性?

我有一个文件inputmultiple="multiple"属性,允许用户一次select多个文件。 我想显示上传之前选定的文件名和他们的计数,但我不知道如何从文件input元素使用JavaScript获取此信息?

 <input type="file" id="fileElementId" name="files[]" size="20" multiple="multiple" /> 

我试过这个:

 document.getElementById('fileElementId').value 

但是,当我select多个文件时,这只会返回一个文件名。 使用JavaScript是如何从具有multiple属性的文件input元素中检索所选文件及其名称的数量?

在支持HTML5文件的新浏览器中,您的<input>元素将具有“files”属性。 这会给你一个“FileList”引用,它有一个“.length”属性。 在“FileList”实例上还有一个名为“.item()”的访问方法,它需要一个整数arg来访问单个的“File”元素。 那些拥有“.name”属性。

所以:

 var inp = document.getElementById('fileElementId'); for (var i = 0; i < inp.files.length; ++i) { var name = inp.files.item(i).name; alert("here is a file name: " + name); } 

这在IE浏览器版本当然不起作用,我甚至不确定Safari和Chrome的支持有多彻底。 然而,如果你正在写文件input设置为“多个”的页面,你已经在边上跳舞了:-)

这是未经testing的,但你可以尝试:

  $('#fileElementId').get(0).files; 

要么

  document.getElementById('fileElementId').files;