2013-01-16 76 views
0

我運行一個虛擬寵物網站,我們使用PHP GD庫生成我們的頭像和寵物。到目前爲止,我們有超過一千個用戶,而且只有3個用戶遇到過這個問題。對於每個用戶來說,這是完全相同的問題。PHP GD圖片圖像不能顯示給某些用戶

這是用戶看到的screenshot的圖片。

大多數圖像只顯示「Broken Link」圖標,但每隔一段時間開始構建圖像並在完成前停止。

這是我試圖調整它:

  • 刪除一切從嘴皮子圖像並打印出來其他的代碼。
  • 由不同的主機
  • 刪除從CloudFlare的DNS服務器上的網站放置在完全不同的服務器上的代碼,看是否CloudFlare的是導致它
  • 二手JPEG圖像,而不是PNG格式

這是信息迄今我已經收集這些用戶:

  • 通過代理查看我們的網站允許圖像加載
  • 使用來自同一互聯網連接的筆記本電腦成功加載圖像
  • 瀏覽器要麼輸出斷開的鏈接,要麼說圖像包含錯誤,並且無法顯示。

最後,這裏是我使用的是簡單的測試圖像的頁面代碼:

<? 
$finalimage = imagecreatetruecolor(500,500); 
$file = 'http://www.somesite.com/picture.jpg'; 
$layers = imagecreatefromjpeg($file); 
imagecopy($finalimage, $layers, 0, 0, 0, 0, 500, 500); 
imagedestroy($layers); 

header("Content-type: image/jpeg"); 
imagejpeg($finalimage); 
imagedestroy($finalimage); 
?> 
+0

這真的是你的測試腳本嗎?因爲發送Content-type image/jpeg然後返回一個imagepng是沒有意義的。 – gview

+0

對不起,從png切換到jpeg時混淆了它。編輯它。 –

+0

您的日誌中是否有任何內容?你確定你沒有達到內存限制嗎? – gview

回答

0

你已經忘了imagedestroy($finalimage);末,但我不知道這是否會解決您的問題

+0

完全沒有問題。 – gview

+0

是的,但爲了保存服務器的內存,使用'imagedestroy()'必須是強制性的。 – Epoc

+0

不是真的,當腳本結束時,內存被垃圾收集。 – gview

0

我們的用戶面臨的問題是使用卡巴斯基反病毒軟件。他們必須將我們的URL添加到網絡安全下的受信任站點列表中。這樣做後,所有圖像加載正常。