php将前台传递过来的base64格式的图片转存到服务器硬盘

    /**
     * base64格式转存图片
     * @param int $shopid
     * @param string $filename 文件名
     * @param string $base64 上传的文件的 base64格式
     * @param string $filePath 要保存的路径
     * @return number[]|string[]|string
     * @author Donlyn<br>
     * created at 2017-08-24
     */
    function base64_upload($shopid,$filename,$base64, $filePath='/upload/shop_info_check_qrcode/') {
        if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64, $result)){
                
                // 图片后缀
            $type = $result[2];
            
            // 保存位置--图片名
            $image_name = ($filename ? $filename : date('His') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT) ). "." . $type;
            $filePath = $filePath ? $filePath : '/upload/shop_info_check_qrcode/';
            $image_url = $filePath . $shopid . '/' . $image_name;
            if (! is_dir(dirname('.' . $image_url))) {
                /* mkdir(dirname('.' . $image_url));
                chmod(dirname('.' . $image_url), 0777); */
                $public_obj = new PublicAction();
                $public_obj->Directory(dirname('.'.$image_url));
                //umask($oldumask);
            }
            if(file_exists('.'.$image_url)){
                return array(
                    'sta' => 0,
                    'code' => 2,
                    'filename' => $filename,
                    'imageName' => $image_name,
                    'url' => $image_url,
                    'msg' => '图片已存在',
                );
            }
            // 解码
            $decode = base64_decode(str_replace($result[1], '', $base64));
            if (file_put_contents('.' . $image_url, $decode)) {
                $data['sta'] = 1;
                $data['code'] = 0;
                $data['filename'] = $filename;
                $data['imageName'] = $image_name;
                $data['url'] = $image_url;
                $data['msg'] = '保存成功!';
            } else {
                $data['sta'] = 0;
                $data['code'] = 1;
                $data['filename'] = $filename;
                $data['imgageName'] = '';
                $data['url'] = '';
                $data['msg'] = '图片保存失败!';
            }
        }else{
            $data['sta'] = 0;
            $data['code']=1;
            $data['filename'] = $filename;
            $data['imgageName']='';
            $data['url']='';
            $data['msg']='base64图片格式有误!';
        }       
        return $data;
    }