1.形如:"data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAA......==" 的字符串就是base64。

2.data:image/jpeg;base64,为头部信息,其余为图片编码。

3.使用base64_decode对编码内容进行解码。

4. 编码后的数据比原始数据略长,为原来的4/3。因为:三个字节有24个位元,就可以刚好对应于4个Base64单元,即3个字节需要用4个Base64的可打印字符来表示。

示例---->将前台传来的被转为base64的字符串转化为图片并存储:

function base64($filestr,$filepath,$MaxSize = 300,$filetype = 'jpeg')

{ 

  //判断上传文件的大小

  $filesize = round(strlen($filestr)/1024/4*3,1);
  if($filesize > $MaxSize) return '传入图片过大';

  //将base64字符串中的 '/','+'替换成为 '_','-' ,因为PHP中base64的编码只有0-9,a-z,A-Z,'-','_'64种。

  $img = str_replace(array('_','-'), array('/','+'), $filestr);

  //截取base64字符串的前100个字符,因为字符串太大

  $b64img = substr($img, 0, 100);

  //正则匹配base64的头信息

  if (!preg_match('/^(data:\s*image\/(\w+);base64,)/', $b64img, $matches)) return '不是标准的base64';

  if (count($matches) < 3) return '匹配不完整';

  if (!in_array($matches[2], $filetype)) return '传入图片格式不正确';

  $type = $matches[2];

  //确定保存文件的地址

  $basedirmain = $filepath.date('YmdHis').'.'.$type;

  if (!is_dir($filepath))  mkdir($filepath,0777,true);

  //去掉头信息

  $img = str_replace($matches[1], '', $img);

  //解码

  $img = base64_decode($img);

  //保存

  if (!file_put_contents($basedirmain, $img)) return '传入图片失败';

  return $basedirmain;

}

base64的使用

<img src="base64字符串"/>

就可以显示图片

转载于:https://www.cnblogs.com/wsh-ning/p/7463101.html

PHP与base64相关推荐

  1. Android报错:java.lang.NoClassDefFoundError: Failed resolution of: Ljava/util/Base64;如何解决

    原因是使用了java标准库里的java.util.Base64这个类,编译时不会报错,但运行时直接崩溃了. 解决方法是用android自带的Base64类替换,直接import android.uti ...

  2. php将图片链接转换为base64编码文件流

    /** * 图片链接转换为 base64 文件流 * @param $imgUrl * @return string */ function img_url_to_base64($imgUrl) {$ ...

  3. Go 学习笔记(41)— Go 标准库之 encoding/base64 (编解码)

    1. 简要概述 Base64 是网络上最常见的用于传输 8Bit 字节码的编码方式之一, Base64 就是一种基于 64 个可打印字符来表示二进制数据的方法. Base64 编码是从二进制到字符的过 ...

  4. java 图片 base64_java实现图片转base64字符串 java实现base64字符串转图片

    java 图片转base64字符串.base64字符串转图片,具体内容如下 1. 图片转base64字符串: /** * base64编码字符串转换为图片 * @param imgStr base64 ...

  5. 编码 data:text/html;c,关于 Data URI Scheme -- data:image/jpg;base64

    转载一篇大神的文章 大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如: data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqA ...

  6. Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式

    Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...

  7. 将图片(路径)转换为Base64 和 将base64转换为file类型

    var image={/* 将图片(路径)转换为Base64 */getBase64FromImageURL(url, callback) {var canvas = document.createE ...

  8. 偏前端 - vue-cli(axios请求数据==》token+按接口参数顺序(参数值拼接base64)- MD5)...

    token+按接口参数顺序(参数值拼接base64)-> MD5) 请教于"喵咪",再此特别鸣谢!~ 特别强调:import qs from qs; 这个内部方法一定要用哦. ...

  9. BASE64 编码和解码

    依赖jar: import org.apache.commons.codec.binary.Base64; BASE64和其他相似的编码算法通常用于转换二进制数据为文本数据,其目的是为了简化存储或传输 ...

  10. php base64解码图片 base64加密图片还原

    <?php//文件名:base64.php $data="/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEABALDA4MChAODQ4SERATGCgaGBYWGDE ...

最新文章

  1. Windows内核系统调用分析
  2. android 7.0 裁剪,Android 7.0中拍照和图片裁剪适配的问题详解
  3. [react] React Hooks帮我们解决了哪些问题?
  4. 关于时间复杂度(持续更新.....)
  5. 2017.9.14 仪仗队 思考记录
  6. 如何使用MySQL Workbench建立数据库
  7. Linux程序设计第二版练习题(第五章)
  8. 什么无线蓝牙耳机好?英雄联盟推荐竞技游戏专用蓝牙耳机
  9. java中的面向对象(基础)
  10. 亚夏汽车首发申请通过 成第2家IPO经销商_135
  11. Spring Boot技术知识点:如何实现二维码生成工具
  12. 什么是windows的域(Domain)?
  13. UR5双臂Gazebo仿真(Python)
  14. java中空指针异常如何解决_main函数中出现空指针异常,如何解决?
  15. 第0课 课前必读(未完成)
  16. java中new关键字详解
  17. MySql-字符串拼接函数
  18. Android蒙版倒计时,【倒计时海报设计】- 虎课网
  19. docker-compose快速启动mysql和redis(提供外部客户端可连接)
  20. IGARSS 会议介绍

热门文章

  1. python代码写好了怎么运行不了-python代码可以直接运行吗 Python写了代码如何运行...
  2. python开发微信小程序-微信小程序开发:python+sanic 实现小程序登录注册
  3. python主要运用于-Python的8大主要应用领域,看看哪个是你的菜?
  4. python timer使用-关于定时器的两种使用方法
  5. python画出心形图-python如何绘制心形
  6. python散点图点的大小-Python散点图。 标记的大小和样式
  7. 如何使用python画折线图-Python 使用 matplotlib 画折线图教程
  8. python 自动化-五大自动化测试的Python框架
  9. python密码学编程pdf-Python密码学编程PDF电子书免费下载
  10. 学python编程-趣学python编程中文版 PDF 下载