* Fix #1642, fix #1912 - Previous change (#1718) did not modify how original file was saved on upload * Fix for when file is missing
This commit is contained in:
		
							parent
							
								
									6bd1019235
								
							
						
					
					
						commit
						e09ab2c0bd
					
				|  | @ -21,6 +21,8 @@ class Account < ApplicationRecord | |||
|   validates_attachment_content_type :header, content_type: IMAGE_MIME_TYPES | ||||
|   validates_attachment_size :header, less_than: 2.megabytes | ||||
| 
 | ||||
|   before_post_process :set_file_extensions | ||||
| 
 | ||||
|   # Local user profile validations | ||||
|   validates :display_name, length: { maximum: 30 }, if: 'local?' | ||||
|   validates :note, length: { maximum: 160 }, if: 'local?' | ||||
|  | @ -332,4 +334,20 @@ class Account < ApplicationRecord | |||
|       self.public_key  = keypair.public_key.to_pem | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   private | ||||
| 
 | ||||
|   def set_file_extensions | ||||
|     unless avatar.blank? | ||||
|       extension = Paperclip::Interpolations.content_type_extension(avatar, :original) | ||||
|       basename  = Paperclip::Interpolations.basename(avatar, :original) | ||||
|       avatar.instance_write :file_name, [basename, extension].delete_if(&:empty?).join('.') | ||||
|     end | ||||
| 
 | ||||
|     unless header.blank? | ||||
|       extension = Paperclip::Interpolations.content_type_extension(header, :original) | ||||
|       basename  = Paperclip::Interpolations.basename(header, :original) | ||||
|       header.instance_write :file_name, [basename, extension].delete_if(&:empty?).join('.') | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  |  | |||
|  | @ -50,7 +50,7 @@ class MediaAttachment < ApplicationRecord | |||
|   end | ||||
| 
 | ||||
|   before_create :set_shortcode | ||||
|   before_post_process :set_type | ||||
|   before_post_process :set_type_and_extension | ||||
| 
 | ||||
|   class << self | ||||
|     private | ||||
|  | @ -103,7 +103,13 @@ class MediaAttachment < ApplicationRecord | |||
|     end | ||||
|   end | ||||
| 
 | ||||
|   def set_type | ||||
|   def set_type_and_extension | ||||
|     self.type = VIDEO_MIME_TYPES.include?(file_content_type) ? :video : :image | ||||
| 
 | ||||
|     unless file.blank? | ||||
|       extension = Paperclip::Interpolations.content_type_extension(file, :original) | ||||
|       basename  = Paperclip::Interpolations.basename(file, :original) | ||||
|       file.instance_write :file_name, [basename, extension].delete_if(&:empty?).join('.') | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ Paperclip.options[:read_timeout] = 60 | |||
| 
 | ||||
| Paperclip.interpolates :filename do |attachment, style| | ||||
|   return attachment.original_filename if style == :original | ||||
|   [basename(attachment, style), content_type_extension(attachment, style)].delete_if(&:empty?).join('.') | ||||
|   [basename(attachment, style), extension(attachment, style)].delete_if(&:empty?).join('.') | ||||
| end | ||||
| 
 | ||||
| if ENV['S3_ENABLED'] == 'true' | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue