为什么"HTML <input type ='file'/>"在JavaScript中有"files"属性?

Sae*_*ati 5 html javascript upload file

请考虑以下HTML代码段:

<input type='file' id='fileUpload' />
Run Code Online (Sandbox Code Playgroud)

要在JavaScript中访问此控件,我们可以编写:

var temp = document.getElementById('fileUpload');
Run Code Online (Sandbox Code Playgroud)

好吧,不要生气,我知道你们都知道这一点.但有趣的是,temp变量现在有一个名为files(不是文件,但是文件,复数形式)的属性,它是一种类型FileList,当然是一个File对象列表.这在语义上应该意味着应该可以通过一个且仅一个 HTML文件上载控件上载多个文件.但是,您无法以这种方式上传多个文件,并且有许多变通方法,而不是直接使用.

你怎么解释这个悖论?

更新:我建立了这个jsfiddle以查看其中一个答案.

Chr*_*ann 5

在HTML5中,multiple属性指定可以为输入字段选择多个值.

<input type='file' multiple='multiple' />
Run Code Online (Sandbox Code Playgroud)

这些链接应该有所帮助

http://www.w3schools.com/html5/html5_form_attributes.asp

http://rakaz.nl/2009/08/uploading-multiple-files-using-html5.html