fineuploader iframe功能(IE7-9)

时间:2013-05-19 03:06:07

标签: fine-uploader

所以我一直在寻找在我的网站中实现的解决方案,允许上传多个文件和大文件(> 2 GB),而不使用任何插件,桌面客户端等。我也有早在IE 7上就支持浏览器的要求.FineUploader似乎完全符合要求,但我一直试图弄清楚的一个方面是它如何使用iframe来支持非HTML5浏览器?它是基本上提供HTML内容,所以它仍然允许用户上传文件,但有遗留的限制(一次一个文件,上传之前无法读取文件大小等)?在非HTML5浏览器中我会丢失FineUploader的哪些功能?

谢谢, 的STA

1 个答案:

答案 0 :(得分:1)

我是Fine Uploader的维护者,我会回答你的问题。

对于不支持File API(IE9及更早版本,Android 2.3.x)的浏览器,Fine Uploader必须依赖一个众所周知的“技巧”来允许“ajax”上传。在这些浏览器中,您必须提交包含文件输入元素的表单(每个文件一个)。 Fine Uploader创建一个隐藏的iframe,其中包含相关文件的表单和文件输入。为每个选定的文件创建单独的iframe。然后,Fine Uploader会在上传相关文件时提交表单。收到服务器响应时,服务器的响应文本将加载到此iframe中,并且库将解析此响应(无论浏览器如何,该响应都必须是有效的JSON响应)。

非文件API浏览器存在以下限制:

  • 您一次只能选择一个文件(每个“选择一个文件”对话框一个)。这是因为这些浏览器都不支持文件输入元素的multiple属性。
  • 不支持拖放文件。此功能取决于文件API支持。
  • 不会出现进度条,因为没有简单的方法可以确定不支持File API的浏览器中文件的上传进度。将来可能会努力进行进度计算,例如导致定期GET请求检查进度的文档约定,或者支持nginx或apache中的UploadProgress模块​​。
  • 客户端文件大小信息不可用。因此,不启用与文件大小相关或依赖于文件大小的任何功能。除非浏览器支持File API,否则此信息根本不可用。
  • 未启用分块和自动恢复功能,因为这明确取决于文件API支持。

幸运的是,所有“现代”浏览器,包括IE10,都支持File API。

希望这有帮助。