是否有任何允许灵活实施的宝石/插件? 允许多次上传的奖金=)
答案 0 :(得分:2)
上传的通用机制是对要在HTTP请求实体中上载的整个文件进行编码。因此,当服务器端应用程序甚至看到请求时,文件已经被上传(尽管一些服务器允许优化服务器端处理可以在整个HTTP请求被传输到服务器之前开始,但是如果应用程序需要来自尚未收到的HTTP请求的数据,则会阻止。
有几个基于Flash的上传器允许在单独的 HTTP请求中上传文件;它们要求服务器应用程序具有单独的端点,接受特定于上载文件的HTTP请求。有些甚至实现了进度条,多个文件上传,内容类型和内容长度的客户端约束等等。随机:YUI Uploader,Uploadify,FancyUpload。
答案 1 :(得分:1)
我使用了作为jQuery插件编写的Uploadify,作为我的博客应用程序的多文件上传程序,名为“Rehash”(source code),请检查ProjectsController#new_upload
操作。我们在一些项目中使用了这个,并不断改进我们的实现。任何Flash多文件上传器(如Uploadify或FancyUpload)的棘手部分都在处理Rails的跨站点请求伪造保护和cookie。您希望确保请求来自应用程序,您可能需要对上载进行身份验证。在Rehash中,我只允许站点管理员上传,例如,我需要检查会话密钥和身份验证令牌。 John Nunemaker有一个nice blog post on Rails Tips来设置Uploadify,概述当前使用Paperclip进行文件上传处理Flash /会话内容的最佳实践,这是我们的相同设置。最后你有一个很好的多文件上传器,带有可进行风格的进度条,但最初的工作量很大。
Uploadify还有一个sizeLimit
选项,check the docs。
答案 2 :(得分:0)
我使用YUI uploader。工业实力,大型社区,书籍等我不得不将自己整合到Rails中,但并不难。
PS,查看小部件的示例,列在页面的最右侧。