我正在尝试用javascript制作一个上传器。我基本上有我的输入文件:
<input id="attachments" type="file" style="display:none; float:left; margin-right:5px;" multiple="" name="file[]">
隐藏所以当我点击一个按钮时,我会触发我的输入:
$(thisELement).find("#attachments").trigger("click");
最后我抓住了我的输入,如下:
$(thisELement).find("#attachments").change(function(e){
console.log(this.file);
对于firefox和chrome,它工作正常,但是当我在IE 9中测试时,我进入控制台“this.file”是未定义的 有谁知道为什么IE不接受“this.file”,哪个指令是等价的?
提前致谢。
答案 0 :(得分:1)
在文件上传方面,IE在安全方面非常紧张。它不允许您使用JS来触发文件上传,因为这可能不涉及用户交互,并允许页面窃取&#34;没有用户知道的文件。我已经对此进行了广泛的研究,答案几乎就是你无法做到,你必须使用原生文件上传控件。
您可以尝试使用jquery插件uploadify。它使用Flash来绕过这个安全限制,但是你却不再使用他们的UI而不是浏览器了。然而,他们的UI确实允许您进行一些自定义。