projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'master' of https://github.com/jgoodman/Freeside
[freeside.git]
/
rt
/
share
/
html
/
Ticket
/
Attachment
/
dhandler
diff --git
a/rt/share/html/Ticket/Attachment/dhandler
b/rt/share/html/Ticket/Attachment/dhandler
index
5297082
..
9394fbc
100755
(executable)
--- a/
rt/share/html/Ticket/Attachment/dhandler
+++ b/
rt/share/html/Ticket/Attachment/dhandler
@@
-2,7
+2,7
@@
%#
%# COPYRIGHT:
%#
%#
%# COPYRIGHT:
%#
-%# This software is Copyright (c) 1996-201
1
Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-201
4
Best Practical Solutions, LLC
%# <sales@bestpractical.com>
%#
%# (Except where explicitly superseded by other copyright notices)
%# <sales@bestpractical.com>
%#
%# (Except where explicitly superseded by other copyright notices)
@@
-48,14
+48,14
@@
<%perl>
my ($ticket, $trans,$attach, $filename);
my $arg = $m->dhandler_arg; # get rest of path
<%perl>
my ($ticket, $trans,$attach, $filename);
my $arg = $m->dhandler_arg; # get rest of path
- if ($arg =~
'^(\d+)/(\d+)'
) {
+ if ($arg =~
m{^(\d+)/(\d+)}
) {
$trans = $1;
$attach = $2;
}
else {
Abort("Corrupted attachment URL.");
}
$trans = $1;
$attach = $2;
}
else {
Abort("Corrupted attachment URL.");
}
- my $AttachmentObj =
new RT::Attachment
($session{'CurrentUser'});
+ my $AttachmentObj =
RT::Attachment->new
($session{'CurrentUser'});
$AttachmentObj->Load($attach) || Abort("Attachment '$attach' could not be loaded");
$AttachmentObj->Load($attach) || Abort("Attachment '$attach' could not be loaded");
@@
-70,7
+70,7
@@
my $content_type = $AttachmentObj->ContentType || 'text/plain';
if (RT->Config->Get('AlwaysDownloadAttachments')) {
my $content_type = $AttachmentObj->ContentType || 'text/plain';
if (RT->Config->Get('AlwaysDownloadAttachments')) {
- $r->headers_out->{'Content-Disposition'} = "attachment
; filename=" . $AttachmentObj->Filename
;
+ $r->headers_out->{'Content-Disposition'} = "attachment
"
;
}
elsif (!RT->Config->Get('TrustHTMLAttachments')) {
$content_type = 'text/plain' if ($content_type =~ /^text\/html/i);
}
elsif (!RT->Config->Get('TrustHTMLAttachments')) {
$content_type = 'text/plain' if ($content_type =~ /^text\/html/i);
@@
-79,12
+79,14
@@
my $enc = $AttachmentObj->OriginalEncoding || 'utf-8';
my $iana = Encode::find_encoding( $enc );
$iana = $iana? $iana->mime_name : $enc;
my $enc = $AttachmentObj->OriginalEncoding || 'utf-8';
my $iana = Encode::find_encoding( $enc );
$iana = $iana? $iana->mime_name : $enc;
- $content_type .= ";charset=$iana";
- # unless (RT->Config->Get('TrustMIMEAttachments')) {
- # $content_type = 'application/octet-stream';
- # }
+ require MIME::Types;
+ my $mimetype = MIME::Types->new->type($content_type);
+ unless ( $mimetype && $mimetype->isBinary ) {
+ $content_type .= ";charset=$iana";
+ }
+ $r->subprocess_env('no-gzip' => 1); # disable mod_deflate
$r->content_type( $content_type );
$m->clear_buffer();
$m->out($AttachmentObj->OriginalContent);
$r->content_type( $content_type );
$m->clear_buffer();
$m->out($AttachmentObj->OriginalContent);