php将Base64图片保存到本地

1.前台传来图片信息,例如:"data:image/png;base64,iVBORwAATElE0KGgoAAAAN..." 

2.正则匹配出图片的格式

3.去掉data:image/png;base64头部信息,使用base64_decode对编码内容进行解码。

4. 保存

function base64_image($imgName, $path)
{
    //正则匹配出图片的格式
    if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $imgName, $result)) {
        $type = $result[2];  //获取图片格式
        $new_file = $path .  "/";
        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], '', $imgName)))) {
            return '/' . $new_file;
        } else {
            return false;
        }
    } else {
        return false;
    }
}