Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何确保使用cURL保存文件_Php - Fatal编程技术网

Php 如何确保使用cURL保存文件

Php 如何确保使用cURL保存文件,php,Php,成功时返回true,失败时返回false。利用这些信息 此外,您可以检查以确保传输成功完成且不是空的。(例如,您可以在那里获得http\u-code,以及content\u-type和size\u-download) 您好,上面是一个检查文件是否完全下载的想法,我认为它很有用, 主要思想是一直检查保存的文件,直到下载完成,然后您就可以了 将img显示到前端..您可以在curl代码之后添加它,我没有运行它 我自己,所以这只是一个想法。使用$file=file\u get\u contents($u

成功时返回
true
,失败时返回
false
。利用这些信息

此外,您可以检查以确保传输成功完成且不是空的。(例如,您可以在那里获得
http\u-code
,以及
content\u-type
size\u-download

您好,上面是一个检查文件是否完全下载的想法,我认为它很有用, 主要思想是一直检查保存的文件,直到下载完成,然后您就可以了 将img显示到前端..您可以在curl代码之后添加它,我没有运行它
我自己,所以这只是一个想法。

使用
$file=file\u get\u contents($url)会不会看起来更简单一点然后
文件内容($filename)
,我不确定它是否更快,但它确实看起来更容易阅读。但是,如果设置了
CURLOPT\u RETURNTRANSFER
选项,
curl\u exec()
将在成功时返回结果,失败时返回FALSE。@djay True,但在这种情况下,OP使用
CURLOPT\u FILE
保存文件,而不是在php内部获得响应。。。
<?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;
$downComplete = false;
while(!$downComplete)
{
   if(!file_exist($filePath))
    {
        sleep(1);
    }
    else
    {
     $downComplete = true; 
     break;
    }
}