|
|
|
|
@ -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 |
|
|
|
|
|