/**curl下载文件
* url 地址
savePath 保存目录
filename 文件名
*/
function downFile($url, $savePath = './',$filename=''){
//$url = 'http://www.baidu.com/img/bdlogo.png';
/*
HTTP/1.1 200 OK
Connection: close
Content-Type: image/jpeg
Content-disposition: attachment; filename="cK4q4fLsp7YOlaqxluDOafB.jpg"
Date: Sun, 18 Jan 2015 16:56:32 GMT
Cache-Control: no-cache, must-revalidate
Content-Length: 963704
*/
$ch = curl_init();
if(stripos($url,"https://")!==FALSE){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, TRUE); //需要response header
curl_setopt($ch, CURLOPT_NOBODY, FALSE); //需要response body
$response = curl_exec($ch);
//分离header与body
$header = '';
$body = '';
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == '200') {
$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); //头信息size
$header = substr($response, 0, $headerSize);
$body = substr($response, $headerSize);
}
curl_close($ch);
// print_r($header);die;
//文件名
$arr = array();
if(!$filename){
preg_match('#filename="(.*?)"#', $header, $arr);
$filename=$arr[1];
}
$fullName = rtrim($savePath, '/') . '/' .$filename;
//判断目录是否存在|创建目录
$basePath = dirname($fullName);
if (!file_exists($basePath)) {
mkdir($basePath,0777,true);
}
//保存文件
if (file_put_contents($fullName, $body)) {
return $fullName;
}
return false;
}