在 rails 4.2 中使用回形针上传非图像文件时出错
Error uploading non image files with paperclip in rails 4.2
我在通过回形针上传非图像文件时遇到此错误。
Paperclip error - NotIdentifiedByImageMagickError
这是我的模型代码:
has_attached_file :attachment, :styles => { :medium => "236x236>", :thumb => "150x150>", :large => "1000x500" }
这是我的宝石版本:paperclip (4.2.1) activemodel (>= 3.0.0) activesupport (>= 3.0.0) cocaine (~> 0.5.3) mime-types
如果我从模型中删除样式,效果很好。但是我也需要调整图片的大小。
您需要从模型中删除样式。该错误是由于当您上传非图像文件时,回形针将此文件发送到 imageMagick 以根据指定的样式调整大小。由于文件不是图像文件,因此 imageMagick 无法将文件转换为给定的分辨率并且系统崩溃。
您可以将图像附件和非图像附件的字段分开。
has_attached_file :image_attachment, :styles => { :medium => "236x236>", :thumb => "150x150>", :large => "1000x500" }
has_attached_file :attachment
对于图像附件字段,指定样式并且不为非图像附件指定样式。
尝试使用 before_post_process
模型挂钩。它允许您更改或取消图像处理。来自此处描述的示例 https://github.com/thoughtbot/paperclip#events
if you return false (specifically - returning nil is not the same) in a before_filter, the post processing step will halt.
class Message < ActiveRecord::Base
has_attached_file :asset, styles: {thumb: "100x100#"}
before_post_process :skip_for_audio
def skip_for_audio
! %w(audio/ogg application/ogg).include?(asset_content_type)
end
end
我在通过回形针上传非图像文件时遇到此错误。
Paperclip error - NotIdentifiedByImageMagickError
这是我的模型代码:
has_attached_file :attachment, :styles => { :medium => "236x236>", :thumb => "150x150>", :large => "1000x500" }
这是我的宝石版本:paperclip (4.2.1) activemodel (>= 3.0.0) activesupport (>= 3.0.0) cocaine (~> 0.5.3) mime-types
如果我从模型中删除样式,效果很好。但是我也需要调整图片的大小。
您需要从模型中删除样式。该错误是由于当您上传非图像文件时,回形针将此文件发送到 imageMagick 以根据指定的样式调整大小。由于文件不是图像文件,因此 imageMagick 无法将文件转换为给定的分辨率并且系统崩溃。
您可以将图像附件和非图像附件的字段分开。
has_attached_file :image_attachment, :styles => { :medium => "236x236>", :thumb => "150x150>", :large => "1000x500" }
has_attached_file :attachment
对于图像附件字段,指定样式并且不为非图像附件指定样式。
尝试使用 before_post_process
模型挂钩。它允许您更改或取消图像处理。来自此处描述的示例 https://github.com/thoughtbot/paperclip#events
if you return false (specifically - returning nil is not the same) in a before_filter, the post processing step will halt.
class Message < ActiveRecord::Base
has_attached_file :asset, styles: {thumb: "100x100#"}
before_post_process :skip_for_audio
def skip_for_audio
! %w(audio/ogg application/ogg).include?(asset_content_type)
end
end