2010-08-16 67 views

回答

2

上传的通用机制是对要在HTTP请求实体中上传的文件的整体进行编码。因此,在服务器端应用程序甚至看到请求时,文件已经被上传(尽管一些服务器允许在HTTP请求的全部已经被发送到服务器之前服务器端处理可以开始的优化,但是会阻止应用程序需要尚未收到的HTTP请求中的数据)。

有几个基于Flash的上传器,允许上传文件,单独的 HTTP请求;他们要求服务器应用程序有一个单独的端点,接受特定于上传文件的HTTP请求。有些甚至实现了进度条,多个文件上传,客户端对内容类型和内容长度的限制等等。随机:YUI Uploader,UploadifyFancyUpload

0

我使用YUI uploader。工业实力,大型社区,书籍等。我不得不将自己的整合集成到Rails中,但并不困难。

PS,查看小部件的例子,列在页面的最右侧。

+0

您能否提供有关与Rails集成的详细信息?我无法让rjs使用它。 – jemminger 2011-08-29 15:46:34

+0

@jemminger - 我在rjs之前将它与Rails 1.x集成在一起。主要问题是维持会议。我建议你先使用你的Rails项目获得一个更简单的YUI组件,然后使用YUI上传器。我建议你使用YUI 3.x,因为它有最好的当前支持。另外请记住,如果你仍然遇到问题,你可以问Stack Overflow的具体问题。祝你好运。 – 2011-08-29 18:24:25

1

我用uploadify写成一个jQuery插件,作为我的博客应用程序的多文件上传器,名为“Rehash”(source code),请检查​​操作。我们在一些项目中使用了这个功能,并不断改进我们的实施。任何Flash多文件上传器(如Uploadify或FancyUpload)的棘手部分是处理Rails的跨站请求伪造保护和cookie。您希望确保请求来自应用程序,并且您可能需要验证上传。在Rehash中,我只允许站点管理员上传,因此我需要检查会话密钥和身份验证令牌。 John Nunemaker在获取Uploadify时设置了nice blog post on Rails Tips,概述了将Flash/session作为Rack中间件处理的最佳实践,使用Paperclip进行文件上传,这与我们的设置相同。最后,你有一个很好的多文件上传与风格的进度条,但它最初是一个很好的工作量。

Uploadify有一个sizeLimit选项,以及check the docs