public function downloadFile($url, $path):bool {
$fp = @fopen($path.iconv("UTF-8", "GB2312", urldecode(basename($url))), 'w+');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
fclose($fp);
if ($http_code == 200) {
return true;
} else {
unlink($path.basename($url));
return false;
}
}
函数简述:
- 接收两个参数,$url是远程文件的地址,$path是将文件下载后保存目录
- 添加了下载状态码判断,返回布尔值,若下载成功,则放回true,反之返回false,并删除下载的碎屑文件
- 该函数适合下载比较大的文件,文件下载不会存入内存