+ -
当前位置:首页 → 问答吧 → imagecreatefromjpeg 问题.

imagecreatefromjpeg 问题.

时间:2011-12-16

来源:互联网

最近在使用imagecreatefromjpeg,imagecopy 缓存一些略缩图,遇见一个奇怪的问题。

1. 浏览器直接输入图片地址,可以正常打开(打开速度很慢)。

2. 使用 imagecreatefromjpeg,产生500错误。

3. 浏览器打开过一次图片,再使用imagecreatefromjpeg,PHP代码可以工作。

4. 加一段curl,先模拟浏览器打开一次图片,再使用imagecreatefromjpeg, PHP代码可以工作。


图片地址: http://upload.wikimedia.org/wikipedia/commons/thumb/2/29/7_nani_6.jpg/450px-7_nani_6.jpg

错误信息:
C# code
imagecreatefromjpeg(http://upload.wikimedia.org/wikipedia/commons/thumb/2/29/7_nani_6.jpg/450px-7_nani_6.jpg): failed to open stream: HTTP request failed! HTTP/1.0 500 Internal Server Error


curl 代码:

  PHP code
$ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://upload.wikimedia.org/wikipedia/commons/thumb/2/29/7_nani_6.jpg/450px-7_nani_6.jpg");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 GTB5');
    $gets = curl_exec($ch);
    curl_close($ch);


问题:这到底是什么原因造成的?是由于图片地址打开速度慢,imagecreatefromjpeg 抓取时超时?使用curl代码,可以截取图片,但是代码运行时间加倍。有什么方法可以解决吗,比如设置imagecreatefromjpeg超时;直接结合curl和imagecreatefromjpeg,缩短运行时间?谢谢。

PS:试过get_file_contents(图片地址),同样500错误,看来只有curl比较耐心,不会超时,只是运行速度非常慢。

作者: changjay   发布时间: 2011-12-16

开启错误调试,查看服务器的错误日志试试~

作者: whg4585   发布时间: 2011-12-17