Ruby on Rails:上传带有进度条的文件,并在上传之前检查filesize

有没有允许光滑实现的gem/插件? 允许多次上传的奖金=)

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

有几个基于Flash的上传器允许在单独的 HTTP请求中上传文件; 它们要求服务器应用程序具有单独的端点,接受特定于上载文件的HTTP请求。 有些甚至实现进度条,多文件上传,内容类型和内容长度的客户端约束等等。 随机: YUI Uploader , Uploadify , FancyUpload 。

我使用了作为jQuery插件编写的Uploadify,作为我的博客应用程序的多文件上传器,名为“Rehash”( 源代码 ),检查ProjectsController#new_upload动作。 我们在一些项目中使用了这个,并不断改进我们的实现。 任何Flash多文件上传器(如Uploadify或FancyUpload)的棘手部分都在处理Rails的跨站点请求伪造保护和cookie。 您希望确保请求来自应用程序,您可能需要对上载进行身份validation。 在Rehash中,我只允许站点管理员上传,所以我需要检查会话密钥和身份validation令牌。 John Nunemaker 在Rails提示上有一篇很好的博客文章 ,介绍了如何设置Uploadify,概述当前使用Paperclip进行文件上传处理Flash /会话内容的最佳实践,这是我们的相同设置。 最后,你有一个很好的多文件上传器,带有可进行风格的进度条,但最初的工作量很大。

Uploadify也有一个sizeLimit选项, 请检查文档 。

我使用YUI上传器 。 工业实力,大型社区,书籍等我不得不将自己整合到Rails中,但并不难。

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