提交 a960fc70 编写于 作者: J Jon Moss

Allow `send_file` to declare a charset

Removed my patch in favor of @tenderlove's less invasive approach.

[Aaron Patterson & Jon Moss]
上级 60f34fd7
......@@ -70,6 +70,7 @@ def send_file(path, options = {}) #:doc:
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
......
......@@ -224,8 +224,10 @@ def status=(status)
# Sets the HTTP content type.
def content_type=(content_type)
header_info = parse_content_type
set_content_type content_type.to_s, header_info.charset || self.class.default_charset
return unless content_type
new_header_info = parse_content_type(content_type.to_s)
prev_header_info = parse_content_type(get_header(CONTENT_TYPE))
set_content_type new_header_info.mime_type, new_header_info.charset || prev_header_info.charset || self.class.default_charset
end
# Sets the HTTP response's content MIME type. For example, in the controller
......@@ -403,8 +405,7 @@ def cookies
ContentTypeHeader = Struct.new :mime_type, :charset
NullContentTypeHeader = ContentTypeHeader.new nil, nil
def parse_content_type
content_type = get_header CONTENT_TYPE
def parse_content_type(content_type = get_header(CONTENT_TYPE))
if content_type
type, charset = content_type.split(/;\s*charset=/)
type = nil if type.empty?
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册