From df2a87672acaed825b7399bf909a69314bb0d9c0 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Sat, 26 Jul 2014 16:56:06 -0700 Subject: [PATCH] fix firefox attachment downloads with spaces, RT#30167 --- httemplate/view/attachment.html | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/httemplate/view/attachment.html b/httemplate/view/attachment.html index 5827e3d20..4c4ca5638 100644 --- a/httemplate/view/attachment.html +++ b/httemplate/view/attachment.html @@ -1,15 +1,26 @@ <%init> +$FS::CurrentUser::CurrentUser->access_right('Download attachment') + or die 'access denied'; + my ($query) = $cgi->keywords; $query =~ /^(\d+)$/; my $attachnum = $1 or die 'Invalid attachment number'; -$FS::CurrentUser::CurrentUser->access_right('Download attachment') or die 'access denied'; - -my $attach = qsearchs('cust_attachment', { attachnum => $attachnum }) or die "Attachment not found: $attachnum"; +my $attach = qsearchs('cust_attachment', { attachnum => $attachnum }) + or die "Attachment not found: $attachnum"; die 'access denied' if $attach->disabled; $r->subprocess_env('no-gzip' => 1); # disable mod_deflate + $m->clear_buffer; + $r->content_type($attach->mime_type || 'text/plain'); -$r->headers_out->add('Content-Disposition' => 'attachment;filename=' . $attach->filename); + +my $filename = $attach->filename; +$filename =~ s/"/'/g; #no idea how to encode " ... \" ? "" ? can't? +$r->headers_out->add( + 'Content-Disposition' => qq(attachment;filename="$filename") +); + $m->print($attach->body); + -- 2.11.0