2015-08-16 29 views
0

我正在获取远程图像并检查其大小。奇怪的“JPEG数据流不包含图像”,使用PHP

有时我收到一个奇怪的错误,说JPEG datastream contains no image,我缩小了它在这一步发生的事实上它的确发生在imagecreatefromstring。可能是什么问题呢?图像的问题?或者我需要增加一些内存设置在php.ini或..?

function ranger($url) { 
    $headers = array(
     "Range: bytes=0-32768" 
    ); 

    $curl = curl_init($url); 

    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 

    $data = curl_exec($curl); 

    curl_close($curl); 

    return $data; 
} 

$url = $prod['IMAGE1']; 
$raw1 = ranger($url); 
$im = imagecreatefromstring($raw1); 
$width = imagesx($im); 
$height = imagesy($im); 
+1

最有可能您的'$ data'变量没有像您期望的那样包含图像,而只包含来自远程服务器的HTML文档或文本错误消息。检查该变量的内容,以及'curl_error'说的内容。 – CBroe

回答

0

您需要按照以下三个步骤来解决问题:

  1. 由于错误信息中明确规定,你没有的图像。你需要确定你为什么没有图像。你可以从运行var_dump($raw1)开始,但你可以看看一般的算法。完成这一步之后,您应该知道为什么您没有预期的图像。

  2. 使用有效的图像资源作为参数imagecreatefromstring