On Tue, 1 Jan 2013 18:17:28 +0000
Rik Brown <[email protected]> wrote:
> Hi all,
>
> If I've got a scalar $data containing some binary data (a JPG image
> read using read_file($file, binmode => ':raw' ), how can I cause one
> of my routes to output it?
>
> I've done essentially this (simplified):
>
> get '/some/route' => sub {
> my $data = …get_image…;
>
> header 'Content-Type' => 'image/jpeg';
> return $data;
> }
>
> but this doesn't feel right and causes a broken output (appears to
> return only a few rows of pixels of the image).
That's acceptable enough, and should work (and, according to your
subsequent reply, does after fixing some problem with reading the
image).
If it's a simple as sending the content of an image file, you probably
want to just let send_file() do it.
e.g. send_file($filename, content_type => "image/jpeg");
You can omit the content_type option if you want to, in which case a
reasonable guess will be made for you based on the filename.
The send_file() keyword also understands a scalar ref as content to
send, so you could equally say:
send_file(\$image_data,
content_type => "image/jpeg",
filename => "myimage.jpg",
);
--
David Precious ("bigpresh") <[email protected]>
http://www.preshweb.co.uk/ www.preshweb.co.uk/twitter
www.preshweb.co.uk/linkedin www.preshweb.co.uk/facebook
www.preshweb.co.uk/cpan www.preshweb.co.uk/github
_______________________________________________
dancer-users mailing list
[email protected]
http://lists.preshweb.co.uk/mailman/listinfo/dancer-users