簡體   English   中英

PHP-下載cURL結果

[英]PHP - Download cURL result

我在下面寫了函數:

function download_xfs($url)  
{
    $ch = curl_init();  
    curl_setopt($ch, CURLOPT_URL, $url);  
    curl_setopt($ch, CURLOPT_COOKIE, 'login=michael; xfss=08ruiweu4tuhb5xqs8');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    $string = curl_exec ($ch);  
    curl_close ($ch);  
    // Set headers
}

當我使用download_xfs("http://address.com/file.html"); 它返回文件的二進制文件而不是實際文件。 任何人都可以重寫此代碼來處理要下載的文件嗎?

您的錯誤不在於下載文件,PNG可以下載確定,但是您可能只是將其回顯到屏幕上。 您必須為此文件mime類型設置適當的HTTP標頭:

header('Content-type:image / png');

但是請記住,不要在圖像內容之前和之后回顯任何其他字符串/字符(絕對不要,甚至包括關於Windows記事本在php文件開頭創建的UTF的不可見BOM信息)。 如果要在HTML頁面中包含服務器可下載的圖像,則必須使用此標頭和圖像內容創建另一個.php,並通過以下方式包括它:

<img src="image_from_download.php">

如果要接收純文本,但有意外的二進制文件

遠程服務器上可能存在一些未知的解決方案,該解決方案會發送不同的內容或依賴於用戶代理將您重定向到映像。

嘗試將cUrl中的用戶代理設置為與原始瀏覽器相同。

另外,通過在HTTP請求中發送適當的Accept標頭,確保未壓縮或分塊遠程服務器提供的內容(我不知道,curl是否自動將其解壓縮?)。

此問題也可能取決於狀態,可能您需要設置一些cookie或從中檢索.html的位置將其記錄在遠程Web應用程序中。

嘗試關閉您的FOLLOWLOCATION ,也許您收到30 FOLLOWLOCATION重定向到圖像。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM