base64图上上传保存到服务器

使用$.post提交表格时,图片是没法上传的(除非用编辑器插件什么的,那些都比较大)。 这是一个新思路,图片转base64编码,提交上去,固然,图片不能太大,超过上传限制是不行的。php

function base64_upload($base64) {
    $base64_image = str_replace(' ', '+', $base64);
    //post的数据里面,加号会被替换为空格,须要从新替换回来,若是不是post的数据,则注释掉这一行
    if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image, $result)){
        //匹配成功
        if($result[2] == 'jpeg'){
            $image_name = uniqid().'.jpg';
            //纯粹是看jpeg不爽才替换的
        }else{
            $image_name = uniqid().'.'.$result[2];
        }
        $image_file = "./upload/test/{$image_name}";
        //服务器文件存储路径
        if (file_put_contents($image_file, base64_decode(str_replace($result[1], '', $base64_image)))){
            return $image_name;
        }else{
            return false;
        }
    }else{
        return false;
    }
}

出处html

相关文章
相关标签/搜索