<%= image_tag "path/to/image" %>
我可以上传 PDF 并将其转换为 PNG 格式,并通过帮助程序在浏览器中正确呈现。但是,实际的文件扩展名并未从 PDF 更改为 PNG。因此,如果您下载图像,它会下载为 image.pdf。下载后,如果您将扩展名手动更改为“png”,它会在本地计算机上正确打开图像软件。我希望 RMagick 进程自动更改扩展名和文件格式。我可以编写一些代码来删除 PDF 并在保存文件时添加 PNG 扩展名,但似乎我在这里遗漏了一些东西。我认为这是在我转换为不同格式时应该自动完成的事情。这是我的ImageUploader.rb
课。我正在使用 Carrierwave 和 RMagick。
# app/uploads/image_uploader.rb
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
include Sprockets::Rails::Helper
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
process :convert_to_png
def convert_to_png
manipulate!(format: "png", read: { density: 400 }) do |img, index, options|
options = { quality: 100 }
img.resize_to_fill!(850, 1100)
img
end
end
# Add 'png' file extension so file becomes 'image.pdf.png'
def filename
"#{original_filename}.png" if original_filename
end
end