0

我正在尝试使用 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”,以及哪条指令是是等价的吗?

提前致谢。

4

1 回答 1

1

IE 在文件上传方面的安全性是出了名的严格。它不允许您使用 JS 触发文件上传,因为这可能不涉及用户交互,并允许页面在用户不知情的情况下“窃取”文件。我已经对此进行了广泛的研究,答案几乎是您无法做到,您必须使用本机文件上传控件。

您可以尝试使用 jquery 插件uploadify。它使用 Flash 来绕过这个安全限制,但是你会被他们的 UI 卡住,而不是浏览器的 UI。然而,他们的 UI 确实允许您进行一些自定义。

于 2012-08-16T17:06:11.907 回答