ファイルのアップロードを保存するために、Dragonfly で Dropbox を使用しています。
次のコードがあります。
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
ただ、バイナリデータなので設定できません。