diff options
Diffstat (limited to 'rt/html/NoAuth/images/autohandler')
| -rw-r--r-- | rt/html/NoAuth/images/autohandler | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/rt/html/NoAuth/images/autohandler b/rt/html/NoAuth/images/autohandler new file mode 100644 index 000000000..720979830 --- /dev/null +++ b/rt/html/NoAuth/images/autohandler @@ -0,0 +1,28 @@ +<%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"; +if ($file =~ /\.(gif|png|jpe?g)$/i) { + $type = "image/$1"; + $type =~ s/jpg/jpeg/gi; +} + +die "file not found" unless -f $file && -r _; + +$r->content_type($type); +open my $fh, "<$file" or die "couldn't open file: $!"; +binmode($fh); +{ + local $/ = \16384; + $m->out($_) while (<$fh>); + $m->flush_buffer; +} +close $fh; +$m->abort; +</%INIT> |
