image = PortfolioFileItem.find(107)
img_source = "http://s3.amazonaws.com/test/portfolio_file_items_final/original/1.jpg"
image.picture_from_url(img_source)
image.save(false)
图像保存已完成但缺少图像扩展名。这是保存的示例图像名称: 开uri20110528-6779-fpiust-0。
请帮我解决问题。感谢
答案 0 :(得分:5)
要向paperclip添加扩展名,请在has_attached_file之后添加此行作为选项
:path => ":rails_root/public/:attachment/:id/:style/:basename.:extension"
您可以自定义此路径以满足您的需求,但最后必须有.:extension
,:扩展名是可用于插值的众多值之一。
有关详细信息,请参阅此blog post。
答案 1 :(得分:0)
如果实际文件最初没有扩展名,您可以检测扩展名并在保存之前添加它
def besfore_save
tempfile = data.queued_for_write[:original]
unless tempfile.nil?
extension = File.extname(tempfile.original_filename)
if !extension || extension == ''
mime = tempfile.content_type
ext = Rack::Mime::MIME_TYPES.invert[mime]
self.data.instance_write :file_name, "#{tempfile.original_filename}#{ext}"
end
end
true
end