php 将base64转换成图片并保存 阿星小栈

本文介绍了一种使用PHP将Base64编码的图片转换并保存到服务器的方法。通过正则表达式解析Base64字符串获取图片类型,然后利用Laravel框架提供的功能或纯PHP函数完成图片的保存。

 

 public function setBaseToImg(Request $request){
        $base64_image_content = $request->get('imgBase64','imgBase64');
        //匹配出图片的格式
        $preg = preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result);
        if ($preg){
            $type = $result[2];
            $new_file = public_path('/html5/blessing/baseImg/');
            if(!file_exists($new_file))
            {
                //检查是否有该文件夹,如果没有就创建,并给予最高权限
                mkdir($new_file, 0700);
            }
            $new_file = $new_file.time().uniqid().".{$type}";
            if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){
                 return $new_file;
            }else{
                 return false;
            }
        }
    }

此处我用了Laravel框架自带方法,下面是原始方法,都可用

  public function setBaseToImg(){
        $base64_image_content = $_POST['imgBase64'];
        //匹配出图片的格式
        $preg = preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result);
        if ($preg){
            $type = $result[2];
            $new_file = '/html5/blessing/baseImg/';
            if(!file_exists($new_file))
            {
                //检查是否有该文件夹,如果没有就创建,并给予最高权限
                mkdir($new_file, 0700);

            }
            $new_file = $new_file.time().uniqid().".{$type}";
            if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){
                 return $new_file;
            }else{
                 return false;
            }
        }
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值