这是我尝试上传不是图片的内容时收到的消息,例如mp3。
无法使用MiniMagick进行操作,也许它不是图像? 原始错误:MiniMagick ::无效
所以我试图通过检查文件扩展名来设置条件。只有在不是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? ==&GT;调整大小+创建缩略图
其他==&gt;什么都不做
感谢
答案 0 :(得分:1)
process :resize_to_fit => [100, 100]; :if => :processable?
def processable? upload_name
File.extname(upload_name.path) != ".mp3"
end