aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller
diff options
context:
space:
mode:
authorMatthew Draper <matthew@trebex.net>2016-12-20 05:01:42 +1030
committerMatthew Draper <matthew@trebex.net>2016-12-20 05:01:42 +1030
commit51a9311b2d31c77a70b2acc7c03fcd561184ff0d (patch)
tree6f21e888df478244221df4f3eea69e3feac932b3 /actionpack/lib/action_controller
parent3582f58a7558dc0ddb3051b9deb5354aee378b5b (diff)
downloadrails-51a9311b2d31c77a70b2acc7c03fcd561184ff0d.tar.gz
rails-51a9311b2d31c77a70b2acc7c03fcd561184ff0d.tar.bz2
rails-51a9311b2d31c77a70b2acc7c03fcd561184ff0d.zip
Only default the response charset when it is first set
If it is explicitly cleared (e.g., response.sending_file = true), then we should not try to set it again.
Diffstat (limited to 'actionpack/lib/action_controller')
-rw-r--r--actionpack/lib/action_controller/metal/data_streaming.rb6
1 files changed, 3 insertions, 3 deletions
diff --git a/actionpack/lib/action_controller/metal/data_streaming.rb b/actionpack/lib/action_controller/metal/data_streaming.rb
index f089c8423b..ec4b5cec5e 100644
--- a/actionpack/lib/action_controller/metal/data_streaming.rb
+++ b/actionpack/lib/action_controller/metal/data_streaming.rb
@@ -70,7 +70,6 @@ module ActionController #:nodoc:
send_file_headers! options
self.status = options[:status] || 200
- self.content_type = options[:type] if options.key?(:type)
self.content_type = options[:content_type] if options.key?(:content_type)
response.send_file path
end
@@ -113,6 +112,9 @@ module ActionController #:nodoc:
def send_file_headers!(options)
type_provided = options.has_key?(:type)
+ self.content_type = DEFAULT_SEND_FILE_TYPE
+ response.sending_file = true
+
content_type = options.fetch(:type, DEFAULT_SEND_FILE_TYPE)
raise ArgumentError, ":type option required" if content_type.nil?
@@ -137,8 +139,6 @@ module ActionController #:nodoc:
headers["Content-Transfer-Encoding"] = "binary"
- response.sending_file = true
-
# Fix a problem with IE 6.0 on opening downloaded files:
# If Cache-Control: no-cache is set (which Rails does by default),
# IE removes the file it just downloaded from its cache immediately