我正在开发一个项目,需要上传多个不同类型的文件。
我想将文件存储在数据库中(我不确定这是否也是最好的想法)作为嵌套模型。可称为文件。
我有以下问题。
我是否必须使用插件/ gem,我没有找到任何简单的实现。
如果是的话,最好的宝石/插件是什么?据我所知,paperclip不支持存储在数据库中,但attachment_fu支持存储。
是否可以在不刷新页面的情况下使用jQuery执行此操作?
我还想处理有关文件大小和类型的一些错误。
的问候, Hardik
PS:我正在使用rails 2.3.5
答案 0 :(得分:2)
首先,从不将文件存储在数据库中!
如果您在数据库中保存文件,则必须查询它并通过整个rails堆栈才能获取该文件。你可以想象:这很慢。网络服务器在提供文件和静态内容方面 更快,因为它们是为此而构建的。如果您的网站变得更大,那么将静态内容放在其他地方(如Amazon S3或其他资产主机)是个好主意。如果您的文件不在数据库中,它们是独立的并且易于移动(image_tag助手是您最好的朋友)。
当然你不必须使用插件/ gem。你总是可以自己实现所有东西,但这当然是一个坏主意,因为其他人已经发明了这种轮子,这可以为你节省很多时间。
回形针仍然是我的选择,相当不错,在我看来比attachment_fu更容易处理。它还有您要求的验证。
当然,有http://www.uploadify.com/例如,允许多个文件上传以及您可以想象的事情:)
此致
亚历