thinkphp base64图片多图上传

查看:563
本文介绍了thinkphp base64图片多图上传的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

thinkphp3.2.3 base64格式图片多图上传,转码后保存图片到服务器并返回对应url以及状态是否成功

解决方案

/**
 * 保存64位编码图片
前端参考http://www.cn3wm.com/3wmkj/yzmsfa/index.php?s=/Home/Index/applay.html
 */

 function saveBase64Image($base64_image_content){

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

                  //图片后缀
                  $type = $result[2];
                  if($type=='jpeg'){
                        $type='jpg';
                  }

                  //保存位置--图片名
                  $image_name=date('His').str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT).".".$type;
                  $image_url = 'uploads/image/'.date('Ymd').'/'.$image_name;           
                  if(!is_dir(dirname('./'.$image_url))){
                         mkdir(dirname('./'.$image_url));
                        chmod(dirname('./'.$image_url), 0777);
                        umask($oldumask);

                  }
                 
                  //解码
                  $decode=base64_decode(str_replace($result[1], '', $base64_image_content));
                  if (file_put_contents('./'.$image_url, $decode)){
                        $data['code']='0';
                        $data['imageName']=$image_name;
                        $data['image_url']=$image_url;
                        $data['type']=$type;
                        $data['msg']='保存成功!';
                  }else{
                    $data['code']='1';
                    $data['imgageName']='';
                    $data['image_url']='';
                    $data['type']='';
                    $data['msg']='图片保存失败!';
                  }
        }else{
            $data['code']='1';
            $data['imgageName']='';
            $data['image_url']='';
            $data['type']='';
            $data['msg']='base64图片格式有误!';


        }       
        return $data;


 }

这篇关于thinkphp base64图片多图上传的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆