summaryrefslogtreecommitdiff
path: root/rt/share/html/Ticket/Attachment/dhandler
diff options
context:
space:
mode:
Diffstat (limited to 'rt/share/html/Ticket/Attachment/dhandler')
-rwxr-xr-xrt/share/html/Ticket/Attachment/dhandler15
1 files changed, 8 insertions, 7 deletions
diff --git a/rt/share/html/Ticket/Attachment/dhandler b/rt/share/html/Ticket/Attachment/dhandler
index 9d4d5322c..eb291e4f5 100755
--- a/rt/share/html/Ticket/Attachment/dhandler
+++ b/rt/share/html/Ticket/Attachment/dhandler
@@ -2,7 +2,7 @@
%#
%# COPYRIGHT:
%#
-%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC
%# <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
- if ($arg =~ '^(\d+)/(\d+)') {
+ if ($arg =~ m{^(\d+)/(\d+)}) {
$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");
@@ -79,11 +79,12 @@
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 );