PHP将Base64图片转换为本地图片并保存



/**

 * [将Base64图片转换为本地图片并保存]

 * @E-mial wuliqiang_aa@163.com

 * @TIME   2017-04-07

 * @WEB    http://blog.iinu.com.cn

 * @param  [Base64] $base64_image_content [要保存的Base64]

 * @param  [目录] $path [要保存的路径]

 */

function base64_image_content($base64_image_content,$path){

    //匹配出图片的格式

    if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){

        $type = $result[2];

        $new_file = $path."/".date('Ymd',time())."/";

        if(!file_exists($new_file)){

            //检查是否有该文件夹,如果没有就创建,并给予最高权限

            mkdir($new_file, 0700);

        }

        $new_file = $new_file.time().".{$type}";

        if (file_put_contents(env('root_path') . 'public/'.$new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){

            return '/'.$new_file;

        }else{

            return false;

        }

    }else{

        return false;

    }

}

/**

* 通用文件上传

* @Author   cody

* @DateTime 2020-03-25T10:00:03+0800

* @return   [array]     [description]

*/

function uploads_img(){

    if($this->request->file('file')){

        $file = $this->request->file('file');

    }else{

            if($this->request->isPost()) {

                //是提交操作

                $post = $this->request->post();

                $validate = $this->validate($post, [

                    'file' => 'require',

                ], [

                    'file.require' => '请上传图片',

                ]);

                if ($validate !== true) {

                    $this->error('提交失败:' . $validate);

                }

                $files = $this->base64_image_content($post['file'],'uploads/new');

                if($files){

                  $res['code'] = 1;

                  $res['msg'] = '上传成功';

                  $res['src'] = $files;//文件路径

                  return json($res);

                }

            }

        $res['code']=1;

        $res['msg']='没有上传文件';

        return json($res);

    }



评论0



    0.149559s