【发布时间】:2015-01-16 09:16:32
【问题描述】:
在 IE9 中,不支持FormData,这使得使用XMLHttpRequest 上传文件变得不那么简单了。
这可以吗?我已经看到提到的 iFrame,虽然我不反对编写一些毛茸茸的代码,但我不知道如何实现这一点(有很多资源谈论上传到 iFrame,但没有关于如何获取文件从 iFrame 到服务器)。
使用 vanilla JavaScript(没有第三方库),如何在不使用 FormData 的情况下异步上传文件?
【问题讨论】:
-
这个想法是您通过 iframe 发布到您的服务器。确实没有涉及 AJAX。您可以通过隐藏 iframe 并在文件上传完成时通过 iframe 向客户端返回一些信息(例如文件名和成功或失败信息),使其看起来像 AJAX。
-
由于没有 FileReader (caniuse.com/#feat=filereader),IE9 必须使用表单将文件发送到服务器。 iframe 不是必需的,但如果您的上传响应不是功能性 html 页面,它可以捕获服务器响应并看起来更好。
-
可以被认为是 stackoverflow.com/questions/7909161/jquery-iframe-file-upload 的副本。至少答案就在那里。
标签: javascript ajax file-upload xmlhttprequest