当前位置:首页 > PHP > 正文内容

php base64保存为图片,带格式解析

高老师10年前 (2017-06-11)PHP3285
<?php

/**
 * 将base64字符串创建为图片文件
 * @param string $base64 base64原始字符串
 * @param string $path 保存文件的目录
 * @param string $filename 文件名(不要带格式后缀)
 * @return array 成功:state 1  filename:返回的文件名   失败:state 2   err:返回详细错误
 */
function createBase64($base64, $path, $filename)
{
    $res = [];
    //匹配base64字符串格式
    if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64, $result))
    {
        //保存最终的图片格式
        $postfix = $result[2];
        $base64 = base64_decode(substr(strstr($base64, ','), 1));
        $filename = $filename . '.' . $postfix;
        $path = $_SERVER["DOCUMENT_ROOT"] . $path . $filename;
        //创建图片
        if (file_put_contents($path, $base64))
        {
            $res['state'] = 1;
            $res['filename'] = $filename;
        }
        else
        {
            $res['state'] = 2;
            $res['err'] = 'Create img failed!';
        }
    }
    else
    {
        $res['state'] = 2;
        $res['err'] = 'Not base64 char!';
    }

    return $res;
}


//前端传来的base64,ajax发送的base64请不要做任何处理
$base64 = $_POST['base64'];
var_dump($base64);

//返回结果state=1的时候就是成功,错误信息在err中
var_dump(createBase64($base64, '/', 'girl'));

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/4.html

分享给朋友:

“php base64保存为图片,带格式解析” 的相关文章

PHP验证码不显示的终极解决方案

PHP验证码不显示的终极解决方案

PHP验证码不显示的问题应该是经常的事情,我在这里把2种解决方案都发出来方便大家后期使用.因为是昨天晚上自己写验证码都没有显示,我就直接把之前和李炎恢老师上课写的验证码拿来还是不显示,醉了。首先是第一种方法:1、打开服务器安装目录下的php.ini文件;2、去掉;extension=php_gd.d...

 php抽象类和接口作用

php抽象类和接口作用

【一】.抽象类假设如下场景:团队准备开发某网站,表建好了,页面设计好了.A组负责开发底层数据库操作类(DB),B组负责调用DB类.但是此时A组发生了争执,MySQL? Oracle? DB2? sqlite?到底使用什么数据库?B组.... 进入漫长的等待.解决方法:A组和B组 先定1个数据库类的模...

php 经纬度获取城市,php 经纬度转城市

php 经纬度获取城市,php 经纬度转城市

通过经纬度转换为城市名称,并获得城市的编号,通常在全国类型的商城中比较通用。//经纬度转城市名称(返回城市id,城市名称) //$ak开发密钥,$lat纬度,$lng经度,$type返回数据类型 public function getCityName($ak,$lat,$lng)...

编写php com组件,php调用.net dll,php源码保护

编写php com组件,php调用.net dll,php源码保护

开发com组件可以用c++,vc++,net,我比较熟悉net,演示用dnet(1).创建项目:启动vs2017,新建项目,选择Visual C# ->Windows桌面->类库通用windows(2). 修改Com项目:点击 项目->项目属性,再点击应用程序->程序集信息,...

 php命令行中文乱码,php cli中文乱码

php命令行中文乱码,php cli中文乱码

<?php //如果支持exec函数,可以使用的方式 exec('chcp 65001'); //如果exec函数因安全问题禁用,可以使用的方式 pclose(popen('chcp 65001', 'r'));...

php端口复用,php socket端口复用

php端口复用,php socket端口复用

第一次听说端口复用是在mixphp最新版本中发现的,mixphp启动监听9501端口,现在作者说可以多开几个进程来执行mixphp,我心里想了下再启动不是会端口冲突嘛,但是却没有问题,于是下载mixphp的源码解读,原来是启动http服务器使用new Co\Http\Server('0.0....