【发布时间】:2012-08-27 13:32:58
【问题描述】:
这是我尝试上传非图片的内容(例如 mp3)时收到的消息。
使用 MiniMagick 操作失败,可能不是图像? 原始错误:MiniMagick::Invalid
所以我尝试通过检查文件扩展名来设置条件。仅在不是 mp3 时才调整大小。
这是我使用 CarrierWave 的 FileUploader:
class FileUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
...
if File.extname(File.name) != ".mp3"
process :resize_to_fit => [100, 100]
version :thumb do
process :resize_to_fit => [80, 80]
end
end
...
end
File.name 只提供不带当前文件扩展名的名称。您知道为我提供名称 + 扩展名的变量吗?
编辑:
我在我的控制器中找到了替代方案:
def create
@myfile = File.new(params[:icon])
if @myfile.save
if @myfile.file.file.extension != "mp3"
@myfile.file.resize_to_fit(100, 100)
@file.save
end
end
但现在我被我的 CarrierWave FileUploader 卡住了:
version :thumb do
process :resize_to_fit => [80, 80]
end
太复杂了,我只需要 MiniMagick 来处理图片
我只需要一个小条件:
如果 file_is_image? ==> 调整大小 + 创建缩略图
else ==> 什么都不做
谢谢
【问题讨论】:
-
请注意:为什么同时包含 minimagick 和 rmagick?
-
我实际上只使用 MiniMagick 只是一个错误谢谢。
标签: ruby-on-rails ruby ruby-on-rails-3 carrierwave uploader