使用ajax上传文件

时间:2010-10-11 09:43:54

标签: javascript ajax file-upload prototypejs scriptaculous

我正在寻找可用于文件上传的AJAX方法。 如果我找到一个使用Prototype + Script.acul.us

的函数,它将是超级的

4 个答案:

答案 0 :(得分:0)

使用纯Ajax无法上传文件,因为Javascript无法直接访问本地文件。

jQuery form plugin这样的工具通过动态生成不可见的iframe并提交给它来解决这个问题。

可能还有基于Prototype或独立于框架的解决方案。

答案 1 :(得分:0)

对此没有本机ajax支持,但是Uploadify使用flash做了一个变通方法(使用jquery但是从2.0开始就可以和其他api一起使用)

答案 2 :(得分:0)

答案 3 :(得分:0)

正如其他人所指出的那样,javascript无法异步上传文件(否则启用了javascript的网站可能会从您的硬盘中窃取任何文件)。最好的方法是:

  • 已经建议的Flash上​​传器
  • 或使用iframe模拟Ajax请求

iframe方法意味着它是重新加载的iframe,而不是显示给用户的页面,因此对于最终用户来说,体验看起来就像是Ajax。

如果你正在使用rails,我收集你可能是因为使用了原型和scriptaculous,有一个插件可用于处理这种方法的棘手部分,称为responds_to_parent,自我实施以来已经很久了这本自己在rails应用程序中,但step 6 from this blog看起来是如何使用它的一个很好的例子。