php完美实现下载远程图片保存到本地
/*
*功能:php完美实现下载远程图片保存到本地
*参数:文件url,保存文件目录,保存文件名称,使用的下载方式
*当保存文件名称为空时则使用远程文件原来的名称
*/
function getImage($url,$save_dir="",$filename="",$type=0){
if(trim($url)==""){
return array("file_name"=>"","save_path"=>"","error"=>1);
}
if(trim($save_dir)==""){
$save_dir="./";
}
if(trim($filename)==""){//保存文件名
$ext=strrchr($url,".");
if($ext!=".gif"&&$ext!=".jpg"){
return array("file_name"=>"","save_path"=>"","error"=>3);
}
$filename=time().$ext;
}
if(0!==strrpos($save_dir,"/")){
$save_dir.="/";
}
//创建保存目录
if(!file_exists($save_dir)&&!mkdir($save_dir,0777,true)){
return array("file_name"=>"","save_path"=>"","error"=>5);
}
//获取远程文件所采用的方法
if($type){
$ch=curl_init();
$timeout=5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$img=curl_exec($ch);
curl_close($ch);
}else{
ob_start();
readfile($url);
$img=ob_get_contents();
ob_end_clean();
}
//$size=strlen($img);
//文件大小
$fp2=@fopen($save_dir.$filename,"a");
fwrite($fp2,$img);
fclose($fp2);
unset($img,$url);
return array("file_name"=>$filename,"save_path"=>$save_dir.$filename,"error"=>0);
}
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。