• 接收前端传过来的base64编码后的字符串, 如果是json字符串, 那么PHP使用file_get_contents('php://input'); 来接收. 本次这里是以post传参的形式传base64字符串.

    $photo = \Yii::$app->request->post('photo', '');    //yii接收,photo变量存储的即base64字符串

  • 设置base64转成图片后要保存的文件名 以及 路径
    $filename = date('YmdHis').rand(1111,9999).'.png';
    $path = \Yii::$app->basePath.'/web/temp';
    if(!is_dir($path)){    mkdir($path, 0777, 'true');}
    $imagePath = $path.'/'.$filename;  //文件的完整路径(本地的)

  • 判断是否有逗号, 如果有就截取后半部分
    if(strstr($photo, ',')){$photo = explode(',', $photo);$photo = $photo[1];
    }

  • base64生成图片
    $r = file_put_contents($imagePath, base64_decode($photo));   //$r接收的是返回的字节数, 至此本地成功生成图片

  • 接下来是将本地图片保存至oss上, 并删除本地图片
    $photo_url = $this->uploadImg($imagePath);  //调用上传oss方法
    //删掉本地图片
    unlink($imagePath);

    上传oss方法如下(需要下载ossSDK并引入,此处省略)

    public $access_key = '你的access_key';
    public $secret_key = '你的secret_key';
    public $domain = 'http://oss-cn-shenzhen.aliyuncs.com';  //选距离最近的域名
    public $bucket = '你的bucket';//$localdir是图片的本地路径, 也就是$imagePath
    public function uploadImg($localdir=''){include \Yii::$app->basePath.'extensions/aliyun-oss-php-sdk-2.2.4/autoload.php';  //将ossSDK包放在extensions目录下, 然后引入autoload.php, 还有命名空间. 即可使用.//把文件上传到oss上try{$object = md5(time().uniqid()).'.png';$ossClient = new OssClient($this->access_key, $this->secret_key, $this->domain);$exist = $ossClient->doesObjectExist($this->bucket, $object);if(!$exist){$ossClient->uploadFile($this->bucket, $object, $localdir);}$domain = explode('//', $this->domain);$url = 'http://'.$this->bucket.'.'.$domain[1].'/'.$object; //拼接访问路径
    //            $data = [
    //                'status' => 0,
    //                'msg' => 'success',
    //                'url' => $url,
    //            ];return $url;} catch(OssException $e) {printf(__FUNCTION__ . ": FAILED\n");printf($e->getMessage() . "\n");return;}}

转载于:https://www.cnblogs.com/bneglect/p/11612830.html

PHP处理base64编码字符串相关推荐

  1. PHP 图片转base64编码 和 base64编码字符串转换成图片保存

    1.图片转base64编码: /*图片转换为 base64格式编码*/ $img = 'uploads/01.png'; $base64_img = base64EncodeImage($img); ...

  2. Java中将base64编码字符串转换为图片

    前一段时间,在做摄像头拍照上传,摄像头拍的照片为base64编码格式的字符串,需要上传至项目中,则需要使用到将base64编码字符串转换为图片 1.将base64编码字符串转换为图片的代码如下 Ima ...

  3. 压缩图片并转换为BASE64编码字符串

    调用全国人口信息社会应用平台的人像比对服务,请求参数之一"公民人像BASE64编码字符串",限制大小为30KB: 使用谷歌处理图片的开源工具(thumbnailator),可以对图 ...

  4. PHP实现将base64编码字符串转换成图片示例

    获取base64文件 $image="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDB ...

  5. .Net Base64编码

    using System; using System.Text; using System.IO; using System.Security; using System.Security.Crypt ...

  6. java svgbase64转byte_java 图片进行base64 编码解码

    java 图片进行base64 编码解码 刘振兴 代码分享 2017年06月07日 10555 2条评论 import sun.misc.BASE64Decoder; import sun.misc. ...

  7. JAVA 将图片转换为Base64编码

    https://www.cnblogs.com/ywlx/p/4544179.html 这里使用的jar包是commons-codec-1.10.jar; import java.io.FileInp ...

  8. java 二进制 base64编码_java 按字节读写二进制文件(Base64编码解码)

    最近在做项目时遇到这样一个需求:依次读取本地文件夹里所有文件的内容,转为JSON,发送到ActiveMQ的消息队列, 然后从MQ的消息队列上获取文件的信息,依次写到本地.常见的文件类型,比如.txt ...

  9. 了解Base64编码解码

    我们经常说Base64,那Base64到底是什么呢? Base64是一种基于64个可打印字符来表示二进制数据的表示方法,常用于在通常处理文本数据的场合,表示.传输.存储一些二进制数据,会将不便于查看的 ...

最新文章

  1. wowpve服务器优势,PVE服务器法师对本职业的一点看法
  2. 订单管理之获取订单表详情数据数据
  3. Ubuntu系统在VMware虚拟机中显示显示过小
  4. java常见类加载器,面试必备
  5. CentOS 6.5 伪分布安装
  6. RDL/RDLC批量单据打印 [转]
  7. ansible puppet saltstack三款自动化运维工具的对比
  8. Python安装第三方库的3种方法
  9. linux进程号函数,linux进程
  10. 验证input输入框(字母,数字,符号,中文)
  11. python之featVec[:axis]|extend|append
  12. mac android studio sdk配置,macOS安装Android Studio及配置环境变量
  13. 【Python】基于Python的百度迁徙2——迁徙规模指数(附代码)
  14. 详解 ManualResetEvent
  15. C++ 应用程序性能优化 -- 内存池
  16. 植树问题java,云南省优秀多媒体育软件大赛公示.doc
  17. PGSQL创建管理员账号
  18. AWVS安装激活教程
  19. 阿里sentinel监控客户端配置
  20. 只能输入零和非零开头的数字的正则表达式

热门文章

  1. win32原生API实现OpenGL例子(无glew,glut等第三方依赖库)
  2. Ubuntu apt update无论使用什么源都出现类似的错误
  3. 农业灌溉水力驱动过滤器
  4. 什么是独立站,独立站的作用是什么?
  5. openwrt 使用ebtables限制设备访问外网或内网
  6. 苹果官方首曝iOS 15!这些经典iPhone都要被弃
  7. 虚拟机Ubuntu没有IP地址上不了网
  8. 一加 Ace2是直屏还是曲面屏 一加 Ace2有IP68级防水吗
  9. 【微信小程序】横向/纵向布局(98/100)
  10. 安防4G摄像头视频流媒体服务器EasyNVR关于视频集成自我展示web端嵌入视频广场的流程