代码部分还可以进行优化,如有不对的地方,欢迎留言,感激不尽。
判断文件路径是否存在,存在那么就继续进行。
/**
* @desc 实现文件下载
* @date 2017/7/11 13:15
* @param [string $url]
* @author 1245049149@qq.com
* @return [resource]
*/
public function downPhoto($url){
if($this->checkLoad($url)){
Header("Content-type: application/octet-stream");
Header("Content-Transfer-Encoding: binary");
Header("Accept-Ranges: bytes");
//说明:这里的filename生成下载后的文件名,可以进行优化,生成你自己想要的名字,后缀等等
Header("Content-Disposition: attachment; filename=".$url);
return readfile($url);
}else{
return false;
}
}
/**
* @desc 判断文件路径是否存在
* @date 2017/7/11 13:17
* @param [string $url]
* @author 1245049149@qq.com
* @return [bool]
*/
public function checkLoad($url){
$ch = curl_init();
$timeout = 10;
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$contents = curl_exec($ch);
if (strpos($contents,'200')){
return true;
}else{
return false;
}
}
搞定!