Rails 回形针,多种不同类型(PDF、图像、文档...)
Posted
技术标签:
【中文标题】Rails 回形针,多种不同类型(PDF、图像、文档...)【英文标题】:Rails Paperclip, Multiple of Different Type (PDF, Image, Doc...) 【发布时间】:2012-01-15 11:16:41 【问题描述】:有很多很好的资源展示了如何创建一个包含多个图像上传的 Rails 应用程序。此外,还有很多很好的资源展示了如何使用回形针上传不同类型的文件(PDF、图片、.Doc)。
我想创建一个应用程序,其中用户拥有其个人资料图片的图像资产,并且还能够将 PDF 或 .Doc 文件上传到他们的帐户以与用户绑定。有没有人有这方面的经验来确认它可以通过回形针宝石?任何指导我正确方向的教程或资源将不胜感激。
【问题讨论】:
您的话:“......有很多很好的资源展示了如何使用回形针上传不同的文件类型(PDF、图像、.Doc)。” 这些教程仅涵盖 PDF 的单个文件上传。不是不同类型的多个文件上传,以及这些资源在表单上传、控制器等中是如何管理的。 我也有同样的问题... :( 得到了解决方案....发布在下面... 【参考方案1】:我也遇到了和你一样的问题。无需为此做额外的编码,只需添加以下内容
has_attached_file :attachment,
:styles => lambda |a|
["image/jpeg", "image/png", "image/jpg", "image/gif"].include?( a.content_type ) ?
:thumb=> "100x100#",
:small => "150x150>",
:medium => "300x300>",
:large => "500x500>" :
如果您需要进一步的解释,请告诉我。
【讨论】:
感谢 RAJ,这很有趣。然而,我的核心问题是找到一种将图像和文档合并到其中的方法。因此,用户可以上传个人资料图片,并且用户还可以将简历文档(word 文档)上传到他们的帐户。 是的,正如我所说,我遇到了同样的问题......只需按照我的代码,它将为图像存储 5 种尺寸(包括原件),而对于其他文件(如 .doc、.pdf 等)仅存储原始文档 谢谢.. 但是我们是否可以选择显示其他格式的特定图标。对于 pdf 我们显示 icon1,对于 .doc 我们显示 icon2 据我了解,您想存储一些其他特定扩展的图标。如果是,您可以使用嵌套条件或开关(大小写)来根据扩展名指定不同的样式。 谢谢老兄!这有很大帮助。你节省了我的时间。【参考方案2】:以防万一最近有人在看这个,我们刚刚尝试了接受的答案,但内容类型无法正常工作。我们让它像这样工作:
has_attached_file :attachment, styles: lambda |a| a.instance.attachment_content_type =~ %r(image) ? :small => "x200>", :medium => "x300>", :large => "x400>" :
区别在于对象的“列名”——通常是“___content_type”,而不仅仅是“content_type”
【讨论】:
【参考方案3】:你当然可以上传图片和其他装满回形针的东西,可能值得去 www.railscasts.com,因为有很多与你的问题相关的帖子。
【讨论】:
我已经看过 Railscasts 并且熟悉其他主要教程。教程涵盖了其他文件类型,或同一文件类型的多次上传,但不是两者兼而有之 - 当同时实现这两种文件时,会出现许多复杂情况。以上是关于Rails 回形针,多种不同类型(PDF、图像、文档...)的主要内容,如果未能解决你的问题,请参考以下文章
Rails:使用 Jcrop 和回形针裁剪图像后出现重定向问题