Fix error when processing remote files with unusually long names (#28823)
This commit is contained in:
		
							parent
							
								
									cf2a2ed71c
								
							
						
					
					
						commit
						93957daa50
					
				
					 1 changed files with 8 additions and 1 deletions
				
			
		|  | @ -16,7 +16,7 @@ module Paperclip | |||
|     private | ||||
| 
 | ||||
|     def cache_current_values | ||||
|       @original_filename = filename_from_content_disposition.presence || filename_from_path.presence || 'data' | ||||
|       @original_filename = truncated_filename | ||||
|       @tempfile = copy_to_tempfile(@target) | ||||
|       @content_type = ContentTypeDetector.new(@tempfile.path).detect | ||||
|       @size = File.size(@tempfile) | ||||
|  | @ -43,6 +43,13 @@ module Paperclip | |||
|       source.response.connection.close | ||||
|     end | ||||
| 
 | ||||
|     def truncated_filename | ||||
|       filename = filename_from_content_disposition.presence || filename_from_path.presence || 'data' | ||||
|       extension = File.extname(filename) | ||||
|       basename = File.basename(filename, extension) | ||||
|       [basename[...20], extension[..4]].compact_blank.join | ||||
|     end | ||||
| 
 | ||||
|     def filename_from_content_disposition | ||||
|       disposition = @target.response.headers['content-disposition'] | ||||
|       disposition&.match(/filename="([^"]*)"/)&.captures&.first | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue