2016-05-31 44 views
2

我想下載一個使用捲曲的遠程圖像,它下載文件,但是當我試圖打開它在我的Mac上的圖像 - 我得到一個'無法打開' 信息。無法正確下載遠程圖像文件在PHP中與捲曲

我可以看到文件名爲&的擴展名是完好無損的,但不知何故,它沒有像文件大小那樣保存爲177字節,但我預計文件大小在3kb左右。

任何人都可以提出這是爲什麼嗎?遠程站點是否阻止我下載文件?我已經嘗試了與其他網站上的一些其他圖像相同的代碼,它工作正常?

$url = 'http://www.fifaindex.com/static/FIFA16/images/crest/256/light/21.png'; 
    $saveto = '21.png'; 

    $ch = curl_init ($url); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_BINARYTRANSFER,1); 
    curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13'); 
    $raw = curl_exec($ch); 
    curl_close ($ch); 
    if(file_exists($saveto)){ 
     unlink($saveto); 
    } 
    $fp = fopen($saveto,'x'); 
    fwrite($fp, $raw); 
    fclose($fp); 
+1

URL http://www.fifaindex.com/static/FIFA16/images/crest/256/light/21.png無效? –

+0

上面的網址如果點擊似乎爲我加載一個PNG?你沒有得到足球/足球俱樂部的徽標嗎? – Zabs

+0

不,我收到404 Not Found錯誤。請用文本編輯器檢查下載的文件的內容,看看你得到了什麼。 –

回答

0

你嘗試從圖片的網站,可能增加了一些限制,因此,如果圖像是從外域稱爲將無法送達。

爲了解決這個問題,您可以在CURL選項中指定引薦鏈接,並將其設置爲您想要從中獲取圖片的網站的網址。

在你的情況

curl_setopt($ch, CURLOPT_REFERER, "http://www.fifaindex.com"); 

我沒有嘗試過自己我的本地服務器上,它的工作。

+0

真棒伊戈爾,似乎做的伎倆:) – Zabs