X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/c0fe77fd020a102ee0ac3cde974b437f31efc817..14f1777dadf26b52936edf0c9685f960f59564a3:/config/initializers/streaming.rb diff --git a/config/initializers/streaming.rb b/config/initializers/streaming.rb index 0fc092951..0c27ba2e7 100644 --- a/config/initializers/streaming.rb +++ b/config/initializers/streaming.rb @@ -1,10 +1,12 @@ # Hack ActionController::DataStreaming to allow streaming from a file handle module ActionController module DataStreaming - alias_method :old_send_file, :send_file + alias old_send_file send_file def send_file(file, options = {}) - if file.is_a? File or file.is_a? Tempfile + if file.is_a?(File) || file.is_a?(Tempfile) + headers["Content-Length"] ||= file.size.to_s + options[:filename] ||= File.basename(file.path) unless options[:url_based_filename] send_file_headers! options @@ -12,6 +14,8 @@ module ActionController self.content_type = options[:content_type] if options.key?(:content_type) self.response_body = file else + headers["Content-Length"] ||= File.size(file).to_s + old_send_file(file, options) end end