牛骨文教育服务平台(让学习变的简单)
博文笔记

php完美实现下载远程图片保存到本地

创建时间:2016-09-09 投稿人: 浏览次数:4707
/* 
*功能: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); 
} 
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。