2010-01-27 115 views
1

我遇到cURL問題。我正在下載圖像並將其保存到文件夾中。 cURL創建的文件具有正確的文件大小,這使我認爲正在正確讀取標題。但是,當我在瀏覽器或任何圖片瀏覽應用程序中打開文件時,頂部只有一小部分看起來實際上已被寫入。我的代碼:cURL未正確下載圖像

function _vancore_curl_savefile($url) { 
    $url = str_replace("\"", "", $url); 
    $basename = basename($url); 
    $basename = str_replace("%20", "_", $basename); 
    $var = file_directory_path() . "/van/" . $basename; 
    $uvar = "files/van/" . $basename; 
    $handle = fopen($var, "w"); 
    $curl = curl_init($url); 
    curl_setopt($curl, CURLOPT_FILE, $handle); 
    $result = curl_exec($curl); 
    $result2 = $result; 
    curl_close($curl); 
    fclose($handle); 
    return $uvar; 
} 

file_directory_path()是一個Drupal功能(此功能是一個Drupal模塊的一部分,並呼籲需要下載每個文件)的路徑返回到Drupal的文件下載目錄。我已經通過各種試驗證實:

一)$url是它應該是
B)fopen()被打開右側文件
c)其執行

curl_exec()正在恢復true我很迷茫關於這裏出了什麼問題。任何人有任何想法?

TIA,
班吉

+0

你是什麼意思與「頂部一點點」?這個文件是可見的嗎?如果下載JPEG文件,我懷疑它甚至可以被瀏覽,如果下載只是部分。 – Boldewyn 2010-01-28 09:24:05

+0

我認爲你需要用GD或ImageMagic來做點什麼012bhttp://www.bitrepository.com/download-image.html – Rimian 2010-01-28 09:51:55

+1

你的代碼對我來說可以正常工作。照片在瀏覽器和圖像應用程序中均可正常顯示。 – GZipp 2010-01-28 15:27:48

回答

2

你不會碰巧在Drupal捲曲模塊中使用捲曲庫「模擬」。你是?這並不總是奏效。確保你已經安裝了真正的PHP curl庫。

+0

哇,就是這樣!簡直不敢相信它是如此簡單。謝謝你的幫助! – benjy 2010-01-28 19:55:52

1

集:

curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE); 
+0

仍然是同樣的問題。我也嘗試設置該標誌(而不是CURLOPT_FILE),然後將操作結果寫入文件,但同樣的問題仍然存在。 – benjy 2010-01-27 22:40:08

1

嘗試,如果這有助於:

curl_setopt($curl, CURLOPT_HEADER, 0); 
curl_setopt($curl, CURLOPT_TIMEOUT, 60); 
1

可能是你缺少curl_setopt($curl, CURLOPT_BINARYTRANSFER, 1);(與CURLOPT_RETURNTRANSFER一起,就像上面說)

Here是一個例如。