我有一個使用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