git-svn-id: http://redmine.rubyforge.org/svn/trunk@1053 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/0.7.0-RC1
@@ -196,4 +196,9 @@ class ApplicationController < ActionController::Base | |||
end | |||
return tmp | |||
end | |||
# Returns a string that can be used as filename value in Content-Disposition header | |||
def filename_for_content_disposition(name) | |||
request.env['HTTP_USER_AGENT'] =~ %r{MSIE} ? ERB::Util.url_encode(name) : name | |||
end | |||
end |
@@ -21,7 +21,7 @@ class AttachmentsController < ApplicationController | |||
def download | |||
# images are sent inline | |||
send_file @attachment.diskfile, :filename => @attachment.filename, | |||
send_file @attachment.diskfile, :filename => filename_for_content_disposition(@attachment.filename), | |||
:type => @attachment.content_type, | |||
:disposition => (@attachment.image? ? 'inline' : 'attachment') | |||
rescue |
@@ -67,7 +67,8 @@ class DocumentsController < ApplicationController | |||
def download | |||
@attachment = @document.attachments.find(params[:attachment_id]) | |||
@attachment.increment_download | |||
send_file @attachment.diskfile, :filename => @attachment.filename, :type => @attachment.content_type | |||
send_file @attachment.diskfile, :filename => filename_for_content_disposition(@attachment.filename), | |||
:type => @attachment.content_type | |||
rescue | |||
render_404 | |||
end |
@@ -42,7 +42,8 @@ class VersionsController < ApplicationController | |||
def download | |||
@attachment = @version.attachments.find(params[:attachment_id]) | |||
@attachment.increment_download | |||
send_file @attachment.diskfile, :filename => @attachment.filename, :type => @attachment.content_type | |||
send_file @attachment.diskfile, :filename => filename_for_content_disposition(@attachment.filename), | |||
:type => @attachment.content_type | |||
rescue | |||
render_404 | |||
end |