簡體   English   中英

如何確保使用cURL保存文件

[英]How to make sure file saved by using cURL

<?php
$source = 'http://www.xxx.com/1.jpg';
$fileBody = date('YmdHis') . rand(1000, 9999);
$extension = pathinfo($source, PATHINFO_EXTENSION);
$fileName = $fileBody . '.' . $extension;

$ch = curl_init($source);
$fp = fopen($path . $fileName, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
clearstatcache();

return $fileName;

這是我從互聯網上抓取圖像的方法,圖像成功保存,我將返回ajax的文件名以立即制作縮略圖,但有時php在仍在處理下載時返回$ fileName,因此JavaScript在頁面上顯示空圖像,如何響應文件確實被下載后。

curl_exec成功返回true ,失敗返回false 使用該信息。

另外,您可以檢查curl_getinfo以確保傳輸成功完成並且不為空。 (你得到http_code有例如,以及content_typesize_download )。

$downComplete = false;
while(!$downComplete)
{
   if(!file_exist($filePath))
    {
        sleep(1);
    }
    else
    {
     $downComplete = true; 
     break;
    }
}

嗨,以上是一個檢查文件是否已完全下載的想法,我認為這很有用,主要思想是一直檢查保存的文件,直到完成下載為止,然后您可以將img顯示在前端。卷曲代碼,我自己沒有運行它,所以只是一個想法。

暫無
暫無

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

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