[英]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.