PHP与base64
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相关推荐
- Android报错:java.lang.NoClassDefFoundError: Failed resolution of: Ljava/util/Base64;如何解决
原因是使用了java标准库里的java.util.Base64这个类,编译时不会报错,但运行时直接崩溃了. 解决方法是用android自带的Base64类替换,直接import android.uti ...
- php将图片链接转换为base64编码文件流
/** * 图片链接转换为 base64 文件流 * @param $imgUrl * @return string */ function img_url_to_base64($imgUrl) {$ ...
- Go 学习笔记(41)— Go 标准库之 encoding/base64 (编解码)
1. 简要概述 Base64 是网络上最常见的用于传输 8Bit 字节码的编码方式之一, Base64 就是一种基于 64 个可打印字符来表示二进制数据的方法. Base64 编码是从二进制到字符的过 ...
- java 图片 base64_java实现图片转base64字符串 java实现base64字符串转图片
java 图片转base64字符串.base64字符串转图片,具体内容如下 1. 图片转base64字符串: /** * base64编码字符串转换为图片 * @param imgStr base64 ...
- 编码 data:text/html;c,关于 Data URI Scheme -- data:image/jpg;base64
转载一篇大神的文章 大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如: data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqA ...
- Python 对图像进行base64编码及解码读取为numpy、opencv、matplot需要的格式
Python 对图像进行base64编码及解码读取为numpy.opencv.matplot需要的格式 1. 效果图 2. 源码 参考 这篇博客将介绍Python如何对图像进行base64编解码及读取 ...
- 将图片(路径)转换为Base64 和 将base64转换为file类型
var image={/* 将图片(路径)转换为Base64 */getBase64FromImageURL(url, callback) {var canvas = document.createE ...
- 偏前端 - vue-cli(axios请求数据==》token+按接口参数顺序(参数值拼接base64)- MD5)...
token+按接口参数顺序(参数值拼接base64)-> MD5) 请教于"喵咪",再此特别鸣谢!~ 特别强调:import qs from qs; 这个内部方法一定要用哦. ...
- BASE64 编码和解码
依赖jar: import org.apache.commons.codec.binary.Base64; BASE64和其他相似的编码算法通常用于转换二进制数据为文本数据,其目的是为了简化存储或传输 ...
- php base64解码图片 base64加密图片还原
<?php//文件名:base64.php $data="/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEABALDA4MChAODQ4SERATGCgaGBYWGDE ...
最新文章
- Windows内核系统调用分析
- android 7.0 裁剪,Android 7.0中拍照和图片裁剪适配的问题详解
- [react] React Hooks帮我们解决了哪些问题?
- 关于时间复杂度(持续更新.....)
- 2017.9.14 仪仗队 思考记录
- 如何使用MySQL Workbench建立数据库
- Linux程序设计第二版练习题(第五章)
- 什么无线蓝牙耳机好?英雄联盟推荐竞技游戏专用蓝牙耳机
- java中的面向对象(基础)
- 亚夏汽车首发申请通过 成第2家IPO经销商_135
- Spring Boot技术知识点:如何实现二维码生成工具
- 什么是windows的域(Domain)?
- UR5双臂Gazebo仿真(Python)
- java中空指针异常如何解决_main函数中出现空指针异常,如何解决?
- 第0课 课前必读(未完成)
- java中new关键字详解
- MySql-字符串拼接函数
- Android蒙版倒计时,【倒计时海报设计】- 虎课网
- docker-compose快速启动mysql和redis(提供外部客户端可连接)
- IGARSS 会议介绍
热门文章
- python代码写好了怎么运行不了-python代码可以直接运行吗 Python写了代码如何运行...
- python开发微信小程序-微信小程序开发:python+sanic 实现小程序登录注册
- python主要运用于-Python的8大主要应用领域,看看哪个是你的菜?
- python timer使用-关于定时器的两种使用方法
- python画出心形图-python如何绘制心形
- python散点图点的大小-Python散点图。 标记的大小和样式
- 如何使用python画折线图-Python 使用 matplotlib 画折线图教程
- python 自动化-五大自动化测试的Python框架
- python密码学编程pdf-Python密码学编程PDF电子书免费下载
- 学python编程-趣学python编程中文版 PDF 下载