【发布时间】:2015-02-10 10:30:09
【问题描述】:
我正在使用 Dropbox 和 Dragonfly 来存储我上传的文件。
我有以下代码:
if hash[:file_dropbox].present? #DROPBOX
path = "Attachments/" + Time.now.strftime("%d%m%Y_%H%M") + "_" + rand(1000).to_s + "_" + File.basename(hash[:file_dropbox])
data = open(hash[:file_dropbox]) { |f| f.read }
file["file"] = Dragonfly[:images].store(data, path: path)
end
问题:
Dragonfly 使用我用于路径的文件名作为存储名称。使用Dragonfly.store时是否可以设置不同的单独文件名?
对于普通文件,Dragonfly 使用 original_filename,但我似乎无法通过 Dragonfly.store 进行设置。
有什么建议吗?
EDIT1:
我尝试了以下方法:
file["file"] = Dragonfly[:images].store(data, path: path,
original_filename: "hello.docx")
file["original_filename"] = File.basename(hash[:file_dropbox])
使用普通文件上传时,可以设置original_filename。但我不能设置data.original_filename,因为它只是二进制数据。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 dragonfly-gem