From: ivan Date: Mon, 15 Aug 2011 20:51:16 +0000 (+0000) Subject: adding Content-Disposition with a filename and proper extension fixes invoice opening... X-Git-Tag: freeside_2_1_3~40 X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=33e4acc0ed54e781f528b8ad89d8e018c50fdbf3 adding Content-Disposition with a filename and proper extension fixes invoice opening on mac firefox, RT#14015 --- diff --git a/httemplate/view/cust_bill-pdf.cgi b/httemplate/view/cust_bill-pdf.cgi index 323e502b4..2ac0d0a3a 100755 --- a/httemplate/view/cust_bill-pdf.cgi +++ b/httemplate/view/cust_bill-pdf.cgi @@ -6,13 +6,13 @@ die "access denied" my( $invnum, $template, $notice_name ); my($query) = $cgi->keywords; -if ( $query =~ /^((.+)-)?(\d+)(.pdf)?$/ ) { +if ( $query =~ /^((.+)-)?(\d+)(.pdf)?$/ ) { #probably not necessary anymore? $template = $2; $invnum = $3; $notice_name = 'Invoice'; } else { $invnum = $cgi->param('invnum'); - $invnum =~ s/\.pdf//i; + $invnum =~ s/\.pdf//i; #probably not necessary anymore $template = $cgi->param('template'); $notice_name = ( $cgi->param('notice_name') || 'Invoice' ); } @@ -37,6 +37,7 @@ die "Invoice #$invnum not found!" unless $cust_bill; my $pdf = $cust_bill->print_pdf(\%opt); http_header('Content-Type' => 'application/pdf' ); +http_header('Content-Disposition' => "filename=$invnum.pdf" ); http_header('Content-Length' => length($pdf) ); http_header('Cache-control' => 'max-age=60' ); diff --git a/httemplate/view/cust_bill-ps.cgi b/httemplate/view/cust_bill-ps.cgi index 5d9e034bb..cc8020a3e 100755 --- a/httemplate/view/cust_bill-ps.cgi +++ b/httemplate/view/cust_bill-ps.cgi @@ -6,7 +6,7 @@ die "access denied" my( $invnum, $template, $notice_name ); my($query) = $cgi->keywords; -if ( $query =~ /^((.+)-)?(\d+)(.pdf)?$/ ) { +if ( $query =~ /^((.+)-)?(\d+)(.pdf)?$/ ) { #probably not necessary anymore? $template = $2; $invnum = $3; $notice_name = 'Invoice'; @@ -36,7 +36,8 @@ die "Invoice #$invnum not found!" unless $cust_bill; my $ps = $cust_bill->print_ps(\%opt); http_header('Content-Type' => 'application/postscript' ); -http_header('Content-Length' => length($pdf) ); +http_header('Content-Disposition' => "filename=$invnum.ps" ); +http_header('Content-Length' => length($ps) ); http_header('Cache-control' => 'max-age=60' );