2015-08-16 60 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