X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fview%2Fattachment.html;h=4c4ca56388728541e80a91b62aff56086a0e6819;hp=c85b1375f9fe5e24d3fe48aa4015483fa3621709;hb=3f2a7b01b59902faed5767d81e2959e131bdbdfd;hpb=283ea2b5137ae3ec36882b492e6de024b0ce6027 diff --git a/httemplate/view/attachment.html b/httemplate/view/attachment.html index c85b1375f..4c4ca5638 100644 --- a/httemplate/view/attachment.html +++ b/httemplate/view/attachment.html @@ -1,16 +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"; +die 'access denied' if $attach->disabled; -my $attach = qsearchs('cust_attachment', { attachnum => $attachnum }) or die 'Attachment not found: $attachnum'; +$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); -binmode STDOUT; -print STDOUT $attach->body; +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);