2013-01-16 40 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添加到网络安全下的受信任站点列表中。这样做后,所有图像加载正常。