PHP处理base64编码字符串
- 接收前端传过来的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编码字符串相关推荐
- PHP 图片转base64编码 和 base64编码字符串转换成图片保存
1.图片转base64编码: /*图片转换为 base64格式编码*/ $img = 'uploads/01.png'; $base64_img = base64EncodeImage($img); ...
- Java中将base64编码字符串转换为图片
前一段时间,在做摄像头拍照上传,摄像头拍的照片为base64编码格式的字符串,需要上传至项目中,则需要使用到将base64编码字符串转换为图片 1.将base64编码字符串转换为图片的代码如下 Ima ...
- 压缩图片并转换为BASE64编码字符串
调用全国人口信息社会应用平台的人像比对服务,请求参数之一"公民人像BASE64编码字符串",限制大小为30KB: 使用谷歌处理图片的开源工具(thumbnailator),可以对图 ...
- PHP实现将base64编码字符串转换成图片示例
获取base64文件 $image="data:image/jpg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDB ...
- .Net Base64编码
using System; using System.Text; using System.IO; using System.Security; using System.Security.Crypt ...
- java svgbase64转byte_java 图片进行base64 编码解码
java 图片进行base64 编码解码 刘振兴 代码分享 2017年06月07日 10555 2条评论 import sun.misc.BASE64Decoder; import sun.misc. ...
- JAVA 将图片转换为Base64编码
https://www.cnblogs.com/ywlx/p/4544179.html 这里使用的jar包是commons-codec-1.10.jar; import java.io.FileInp ...
- java 二进制 base64编码_java 按字节读写二进制文件(Base64编码解码)
最近在做项目时遇到这样一个需求:依次读取本地文件夹里所有文件的内容,转为JSON,发送到ActiveMQ的消息队列, 然后从MQ的消息队列上获取文件的信息,依次写到本地.常见的文件类型,比如.txt ...
- 了解Base64编码解码
我们经常说Base64,那Base64到底是什么呢? Base64是一种基于64个可打印字符来表示二进制数据的表示方法,常用于在通常处理文本数据的场合,表示.传输.存储一些二进制数据,会将不便于查看的 ...
最新文章
- wowpve服务器优势,PVE服务器法师对本职业的一点看法
- 订单管理之获取订单表详情数据数据
- Ubuntu系统在VMware虚拟机中显示显示过小
- java常见类加载器,面试必备
- CentOS 6.5 伪分布安装
- RDL/RDLC批量单据打印 [转]
- ansible puppet saltstack三款自动化运维工具的对比
- Python安装第三方库的3种方法
- linux进程号函数,linux进程
- 验证input输入框(字母,数字,符号,中文)
- python之featVec[:axis]|extend|append
- mac android studio sdk配置,macOS安装Android Studio及配置环境变量
- 【Python】基于Python的百度迁徙2——迁徙规模指数(附代码)
- 详解 ManualResetEvent
- C++ 应用程序性能优化 -- 内存池
- 植树问题java,云南省优秀多媒体育软件大赛公示.doc
- PGSQL创建管理员账号
- AWVS安装激活教程
- 阿里sentinel监控客户端配置
- 只能输入零和非零开头的数字的正则表达式