我有一个使用GD动态创建图像的Perl Dancer Web应用程序。我正在尝试将这些图像作为PNG提供给用户。例如:Perl Dancer send_file问题
package MyApp;
use Dancer ':syntax';
use GD;
...
get '/dynamic_image/:var1/:var2' => sub {
my $im = GD::Image->new(100,100);
my $black = $im->colorAllocate(0,0,0);
my $white = $im->colorAllocate(255,255,255);
$im->rectangle(10,10,90,90,$white);
my $png = $im->png;
return send_file(\$png, content_type => 'image/png', filename => params->{var1}."_".params->{var2}.".png");
};
但是,当访问上述路由时,Chrome和Firefox似乎不知道如何处理图像数据。如果我尝试在Lightbox中使用路线,Chrome会抱怨。例如,像这样的链接上点击时:
<a href="/dynamic_image/my/image" rel="lightbox">link</a>
Chrome的控制台说:
资源解释为图像但具有MIME类型application /八位字节流移送:“http://www.example.com/dynamic_image/my/image”。
它看起来像舞者没有正确使用content_type。有趣的是,IE8似乎加载图像就好了。任何想法发生了什么?我目前正在使用Strawberry Perl v5.16.2在Windows 7上独立运行它。
谢谢,我会试试看。我正在使用最新版的舞者。当我第一次遇到希望能够解决问题的问题时,我进行了升级。 – indiguy 2013-03-02 03:10:31