php 远程图片下载至本地服务器并存储

作者: wxfeng 分类: 未分类 发布时间: 2017-07-07 00:00    阅读 666 次
    /**
    * 下载远程图片至本地服务器
    *
    * @param   imgsrc      图片远程地址
    * @return  rndfilename 如果成功返回图片在本地的存储路径,失败则返回false
    */
   public function GetCurSinImg($imgsrc)
    {
        //图片存储目录 年月日时分
        $imgpath = date("YmdHi");
        create_folders($imgpath);
        //生成唯一的图片文件名
        $filename = md5(uniqid());
                $value = trim($imgsrc);
                //根据图片的路径获取图片的后缀
                $imgAttr = get_headers($value,true);
                switch($imgAttr['Content-Type']){
                    case 'image/png' :
                        $ext = 'png';
                        break;
                    case 'image/jpeg' :
                        $ext = 'jpg';
                        break;
                    case 'image/gif' :
                        $ext = 'gif';
                        break;
                    default:
                        $ext = 'jpg';
                }
                
                $get_file = @file_get_contents($value);
                $rndfilename = $imgpath."/".$filename.".".$ext;
                
                if($get_file)
                {
                    $fp = fopen($rndfilename,"w+");
                    fwrite($fp,$get_file);
                    fclose($fp);
                    return $rndfilename;
                }else{
                    return false;
                }
        
    }
    
    //递归创建目录
    public function create_folders($dir)
    {
        return is_dir($dir) or (create_folders(dirname($dir)) and mkdir($dir, 0777)); 
    }

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!

发表评论

您的电子邮箱地址不会被公开。