diff options
Diffstat (limited to 'rt/html/NoAuth/images/autohandler')
-rw-r--r-- | rt/html/NoAuth/images/autohandler | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/rt/html/NoAuth/images/autohandler b/rt/html/NoAuth/images/autohandler index 2e428c157..720979830 100644 --- a/rt/html/NoAuth/images/autohandler +++ b/rt/html/NoAuth/images/autohandler @@ -1,24 +1,28 @@ -<%init> +<%INIT> +&RT::Interface::Web::StaticFileHeaders(); # This autohandler will spit out RT's images if the user hasn't # properly configured their webserver to stop RT from passing # images through the mason handler. - my $file = $m->base_comp->source_file; -my $type = "application/octet-stream"; + +my $type = "application/octet-stream"; if ($file =~ /\.(gif|png|jpe?g)$/i) { $type = "image/$1"; $type =~ s/jpg/jpeg/gi; } -die unless (-f $file && -r $file); +die "file not found" unless -f $file && -r _; + $r->content_type($type); -open (FILE, "<$file") || die; +open my $fh, "<$file" or die "couldn't open file: $!"; +binmode($fh); { local $/ = \16384; - $m->out($_) while (<FILE>); - close(FILE); + $m->out($_) while (<$fh>); + $m->flush_buffer; } +close $fh; $m->abort; -</%init> +</%INIT> |