From ccd09722a978eb414fc86d2c5c95cde5154cf33f Mon Sep 17 00:00:00 2001 From: Max Melentiev Date: Fri, 8 Feb 2019 20:59:14 +0530 Subject: [PATCH] Assignment to result of to_file preserves original filename --- lib/paperclip/attachment.rb | 1 + lib/paperclip/upfile.rb | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/paperclip/attachment.rb b/lib/paperclip/attachment.rb index 5efb267..480c773 100644 --- a/lib/paperclip/attachment.rb +++ b/lib/paperclip/attachment.rb @@ -440,6 +440,7 @@ module Paperclip extname = File.extname(original_filename) basename = File.basename(filename, extname) file = Tempfile.new([basename, extname]).tap(&:binmode) + file.original_filename = filename file.write(body) file.tap(&:flush).tap(&:rewind) end diff --git a/lib/paperclip/upfile.rb b/lib/paperclip/upfile.rb index 7fa7967..9558b64 100644 --- a/lib/paperclip/upfile.rb +++ b/lib/paperclip/upfile.rb @@ -22,9 +22,11 @@ module Paperclip end end + attr_writer :original_filename + # Returns the file's normal name. def original_filename - File.basename(self.path) + @original_filename ||= File.basename(path) end # Returns the size of the file.