PHP中将Base64图片转成本地图片并保存

今天项目需要做一个头像上传,并且上传的数据要是Base64,分享一下在PHP中如何将Base64图片转换为本地图片并保存,代码部分源于网络
<?php
//获取ajax传来的base64编码,$_POST['img']是你后台获取到的图片
$base64_image_content = $_POST['img'];
//图片保存的位置
$path= './public/upload/';
//这个是自定义函数,将Base64图片转换为本地图片并保存
$data = base64_image_content($base64_image_content,$path);
echo $data;
/**
 * 将Base64图片转换为本地图片并保存
 * @param  $base64_image_content 要保存的Base64
 * @param  $path 要保存的路径
 */
function base64_image_content($base64_image_content,$path){
	//匹配出图片的格式
	if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)){
		//后缀 
		$type = $result[2];
		//创建文件夹,以年月日
		$new_file = $path.date('Ymd',time())."/";
		if(!file_exists($new_file)){
			//检查是否有该文件夹,如果没有就创建,并给予最高权限
			mkdir($new_file, 0700);
		}
		$new_file = $new_file.time().".{$type}";	//图片名以时间命名
		//保存为文件
		if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){
			//返回这个图片的路径
		    return $new_file;
		}else{
			return false;
		}
	}else{
		return false;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值