我使用Rails创建一个网站,允许用户上传各种文件格式的文档文件(pdf,doc,docx,ppt,pptx,xls,xlsx,png,jpg,jpeg)并存储它们aws S3。 我使用Carrierwave直接将文件上传到S3,到目前为止一切运行良好。上传的文件很好地存储在S3中。
但现在,我想显示上传文件的预览图像(缩略图)。我通过操作Carrierwave配置尝试了几种不同的方法,但似乎生成缩略图只适用于PDF文件,而不适用于其他文件格式。任何人都可以给我任何见解让这项工作?感谢
答案 0 :(得分:1)
您可以考虑使用可以即时生成缩略图的系统,而不是在应用程序中生成缩略图,例如:
答案 1 :(得分:0)
此链接可能对您有所帮助: http://guides.railsgirls.com/thumbnails
我还找到了一个教程,说你应该可以取消注释image_uploader文件中的一些代码。
version :thumb do
process :resize_to_fill => [50, 50]
end
https://code.tutsplus.com/tutorials/rails-image-upload-using-carrierwave-in-a-rails-app--cms-25183
看看这些解决方案是否有效。
答案 2 :(得分:0)
正如约翰所写,对于你的图像,你可以尝试使用像Cloudinary的jQuery image upload库这样的解决方案来动态生成缩略图。此解决方案可将图像上载到云端。使用亚马逊的S3服务,上传的图像通过安全备份和修订历史安全地存储在云中。
Cloudinary的jQuery库还可以实时生成缩略图。
下面是一个示例代码,用于创建上传图像的150x100缩略图,并使用此图像的公共ID更新输入字段。
$('.cloudinary-fileupload').bind('cloudinarydone', function(e, data) {
$('.preview').html(
$.cloudinary.image(data.result.public_id,
{ format: data.result.format, version: data.result.version,
crop: 'fill', width: 150, height: 100 })
);
$('.image_public_id').val(data.result.public_id);
return true;
});
您可以在这里找到一些Ruby on Rails examples