如何使用Rails上传时验证损坏的图像文件
如果损坏的jpg或png文件(或将任何其他类型的文件的扩展名更改为jpg)
系统必须在上传期间显示错误
答案 0 :(得分:2)
我是第二个Mike Trpcic关于使用Paperclip的建议,我有一个screencast on the topic。
如果您正在使用它并进行一些图形转换(例如制作缩略图),您可以查找PaperclipCommandLineError
异常。我相信如果转换失败就会触发,如果ImageMagick无法读取图形(由于损坏或类型不正确),就会出现这种情况。
如果你rescue Paperclip::PaperclipCommandLineError
,你可以向用户提出一个很好的错误。
答案 1 :(得分:1)
您可以使用mime-types库检查MIME类型,以确保它不是带有更改扩展名的文件。
type = MIME::Types.type_for(your_file.original_filename).first
我不确定如何使用损坏/损坏的文件。请务必查看Paperclip上传文件,因为设置和使用起来非常简单。