使用Ajax进行文件上载的不同方法

时间:2010-01-26 13:16:03

标签: javascript jquery ajax

要使用JavaScript上传文件,通常使用iFrame方法,其中维护隐藏的iframe,然后使用iframe上传文件。

然而,据说不是文件上传的可靠方法,Flash用于此目的。所以我不清楚这是怎么做到的?我的意思是Flash和JavaScript在一起吗?

另外我想知道是否有其他文件上传方法?比如在客户端读取文件转换成二进制数据然后发送它或类似的东西。

全心全意,

2 个答案:

答案 0 :(得分:2)

  

所以我不清楚这是怎么做到的?我的意思是Flash和JavaScript在一起吗?

使用ExternalInterface(或者更常见的是,通过预先滚动的Flash对象,例如YUI Uploader为您完成所有操作)。

  

我想知道是否有其他文件上传方法?

Java的。的ActiveX。

他们使用与Flash相同的原则,但支持较弱。

  

就像在客户端读取文件转换为二进制数据

该文件已经是二进制数据(除非它是文本文件),但是读它......怎么样? JavaScript无法访问标准安全上下文中的文件系统。

答案 1 :(得分:1)

iframe方法没有任何内在错误。基于Flash的上传只是增加了更多的可能性,例如显示上传栏,客户端图像大小调整,更好和更可靠的过滤选项(文件类型/大小)等等。

基于Flash的上传器允许规避<input type=file>元素所具有的一些限制,例如可以完全设置“上传”按钮的样式。

查看其中一个现成的解决方案,了解它们的工作原理。我最喜欢的是