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

标签 javascript html file upload

考虑这个 HTML 片段:

<input type='file' id='fileUpload' />

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

var temp = document.getElementById('fileUpload');

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

你如何解释这个悖论?

更新:我构建了这个 jsfiddle查看实际的答案之一。

最佳答案

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

<input type='file' multiple='multiple' />

这些链接应该有帮助:

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

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

关于javascript - 为什么 "HTML &lt;input type=' file'/>"has "files"属性在 JavaScript 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7396511/

相关文章:

html - 为什么 Bootstrap 5 在 span 标签后添加换行符?

javascript - XLSX JS 中的 excel 文件中缺少第一个值

c++ - 程序删除其他用户的文件 - 权限被拒绝

php - 将文件名更改为用户名 PHP

javascript - 如何使用 html canvas 反转图像?

javascript - 合并相同级别的数组

javascript - 使用 jquery 淡入淡出

javascript - 在 HTML 元素中使用 Jquery 添加值的最快方法是什么?

javascript - css - 固定位置侧边栏导航与页脚重叠

c# - 有没有办法让 ServiceStack.Redis 使用 JSON.NET 而不是 ServiceStack.Text?