我有一个文件上传器,用于获取pdf,rft,txt,doc,docx
我想尽可能创建缩略图。
txt文件和pdf的工作非常好用
process resize_to_fill: [150, 150], convert: :jpg
运行时,doc和docx将失败
Failed to manipulate with MiniMagick, maybe it is not an image? Original Error: MiniMagick::Invalid
我有两个问题。
1.如何在出现错误之前处理此错误?或者至少让用户保存他们的附件,而不是向他们吐痰
2.有没有办法将doc / docx转换为缩略图(而不是调用我们的服务?)
答案 0 :(得分:0)
要上传文件并仅在可能的情况下创建缩略图,您可以添加conditional processing.的版本然后创建一个检查有效内容类型的方法。
class FileUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick
include CarrierWave::MimeTypes
version :thumb, if: :imageable? do
process resize_to_fill: [150,150]
process convert: "jpg"
end
protected
def imageable?(new_file)
is_image = new_file.content_type.start_with? 'image'
is_pdf = new_file.content_type.end_with? 'pdf'
is_image || is_pdf
end
end