Why "HTML <input type='file' />" has
Why "HTML <input type='file' />" has "files" property in JavaScript?
考虑以下HTML片段:
<input type='file' id='fileUpload' />
要在JavaScript中访问这个控件,可以这样写:
var temp = document.getElementById('fileUpload');
好吧,别生气,我知道你们都知道。但有趣的部分是,temp
变量现在有一个名为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根据Gecko DOM参考,它只适用于通过拖放方式使用文件上传元素
这样我们就可以在客户端读取这样选择的文件的内容:
https://developer.mozilla.org/en/Using_files_from_web_applications从3.0版本开始,这在Firefox中是可能的。当时我写了一篇关于如何进行真正的Ajax文件上传的长篇文章:http://igstan.ro/posts/2009-01-11-ajax-file-upload-with-pure-javascript.html
现在,Firefox 3.0 API已经被移除。相反,您应该使用FileReader
和FormData
对象。这应该在最新的浏览器版本中工作。我没有做过广泛的研究,但我相信没有一个版本的IE实现了这些。
相关文章:
- 正在将base64 jpeg从input-type=file上传到服务器
- 铬:“;未捕获的语法错误:意外的标记:"
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 使用“+="操作人员
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- "实例范围”;TypeScript类的getter/setter
- Javascript复选框函数:;缺少:在属性id之后"
- "“;变量未引用正确的对象
- "日期“;AJAX请求返回的类型值未定义
- 得到"TypeError:无法读取属性'filename'未定义的“;调用“npm start
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- 如何在Javascript代码中使用变量Ex:src="htp://www.url.com/file.php?
- "MLHttpRequest无法加载文件:///path/to/file.html”;错误
- & lt;输入类型=“file" /比;张贴数据为…
- & lt;输入类型=“file"祝辞,更改值
- & lt;输入类型=“file"祝辞属性在IE 11中显示不正确