PHP 获取远程图片并保存到本地

   /**
     * 获取远程图片并保存到本地
     * @param $url 远程url链接
     * @param $filename 新的图片名字
     * @return boolean|string
     */
    public function localImage($url, $filename = "")
    {
        //如果$url地址为空,直接退出
        if (empty($url)):return false;endif;
        
        if (empty($filename)) {
            //如果没有指定新的文件名
            //$ext = strrchr($url, ".");//得到$url的图片格式
            $filename = md5(time().mt_rand(10, 9999)).'.jpg';//要生成的图片名字
        }
        $path_one = './Public/Uploads/'.date('Ymd').'/';//存储到项目
        $path_two = '/Public/Uploads/'.date('Ymd').'/';//存储到数据表
        //没有就创建
        if (!file_exists($path_one)){
            mkdir($path_one);
        }
        ob_start();//打开输出
        readfile($url);//输出图片文件
        $img = ob_get_contents();//得到浏览器输出
        ob_end_clean();//清除输出并关闭
        $size = strlen($img);//得到图片大小
        $path = $path_one.$filename;
        $fp2 = @fopen($path, "a");
        fwrite($fp2, $img);//向当前目录写入图片文件,并重新命名
        fclose($fp2);
        return $path_two.$filename;//返回新的文件名
    }

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Back To Top

鄂ICP备17008157号-1