猿问

php basr64转图片的问题

1.在网上找了个base64转图片的方法,网上的方法几乎都是基于这个来了,但是我从ajax提交过来的base64数据执行这个方法第一个判断“匹配出图片的格式”,正则匹配不到,$result是空的,base64数据是没问题的,我返回到客户端放到img标签是可以正常显示的,并且在在线base64转图片的工具也能正常转换,求大神给看看哪里出的问题。

/*  base64格式编码转换为图片并保存对应文件夹 */
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($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){
            return '/'.$new_file;
        }else{
            return false;
        }
    }else{
        return false;
    }
}

base64开头部分数据,太长了就不放了

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAH0CAYAAADL1t+KAAAgAElEQVR4Xuy9aZMd15EleGJ/+8s9E4l9IUEBXCVSpSpVl6q758PMD5r/1GZtNm1TPd1lraqWSqpSSRQ3iRJJccVCrLm/PfYYc/d7IyITSRKEkASQug8WeFu8GxEekXGuux8/bv3fdyYFzMNYwFjAWMBYwFjAWOCZtoBlAP2ZPn9m540FjAWMBYwFjAXYAgbQzYVgLGAsYCxgLGAscAwsYAD9GJxEcwjGAsYCxgLGAsYCBtDNNWAsYCxgLGAsYCxwDCxgAP0YnERzCMYCxgLGAsYCxgIG0M01YCxgLGAsYCxgLHAMLGAA/RicRHMIxgLGAsYCxgLGAgbQzTVgLGAsYCxgLGAscAwsYAD9GJxEcwjGAsYCxgLGAsYCBtDNNWAsYCxgLGAsYCxwDCxgAP0YnERzCMYCxgLGAsYCxgIG0M01YCxgLGAsYCxgLHAMLGAA/RicRHMIxgLGAsYCxgLGAgbQzTVgLGAsYCxgLGAscAwsYAD9GJxEcwjGAsYCxgLGAsYCBtDNNWAsYCxgLGAsYCxwDCxgAP0YnERzCMYCxgLGAsYCxgIG0M01YCxgLGAsYCxgLHAMLGAA/RicRHMIxgLGAsYCxgLGAgbQzTVgLGAsYCxgLGAscAwsYAD9GJxEcwjGA
郎朗坤
浏览 381回答 3
3回答

互换的青春

测试没问题,看看Ajax是否传递过来了

动漫人物

我执行没问题啊

牛魔王的故事

没毛病 能够正常执行
随时随地看视频慕课网APP
我要回答