工作我使用下面的代碼動態生成的背景圖像:PHP imagejpeg()未在Opera
$image = imagecreatefromjpeg('FILENAME');
header('Content-Type: image/jpeg');
imagejpeg($image);
歌劇顯示什麼,當我嘗試查看該腳本。 Chrome和IE工作正常,如果我添加header('Content-Disposition: attachment; filename=download.jpg');
Opera會按預期下載圖像(並且內容是正確的)。
有沒有解決方法,或者我沒有設置一些標題?我很驚訝Chrome正確處理圖像,而Opera(基於Chromium)則沒有。
更新:同樣的問題是真實的,如果我使用,例如,Content-Type: image/png
和imagepng()
相反:在所有的瀏覽器,但歌劇負荷和Opera正確下載文件。
更新':這是一個擴展問題,但我不知道爲什麼。將我的網站添加到uBlock的白名單使一切正常。我的網站流量幾乎爲零,當然也不會發送垃圾郵件,所以這很奇怪。
這是堅果,我無法理解它。我添加了'imagedestroy($ image);退出();'並沒有改變(在任何瀏覽器);因爲圖像是動態生成的(與上面的片段不同,它是MWE),我試過'header('Content-Length:'。strlen(imagejpeg($ image)));'(這是正確的翻譯? 。因爲它適用於所有其他瀏覽器並正確下載,所以我懷疑這與空白有關。我感到困惑。 – kyle 2015-02-11 19:05:57
你完全正確,getimagesize()在動態圖像上不起作用。但是strlen(..)也不會。我只是試過這一個,這是有效的 - 它獲得了一個動態生成的圖像的大小:header('Content-Type:image/jpeg'); ob_start(); imagejpeg($ img); $ size = ob_get_length(); header(「Content-Length:」。$ size); ob_end_flush(); imagedestroy($ img); exit;' – 2015-02-11 19:36:30