php 图片上传

本文介绍了一种处理Base64编码图片的PHP函数,该函数可以解析、验证并保存Base64编码的图片到服务器指定目录。文章详细解释了如何使用正则表达式检查Base64字符串的有效性,确保其符合image/jpeg或image/png格式,并通过imagecreatefromstring函数检查图片的可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

private function base64_upload($base64) {
		ini_set('max_execution_time', '0');
    	$base64_image = str_replace(' ', '+', $base64);
    	if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image, $result)){
    		//匹配成功
    		$image_name = uniqid().'.'.$result[2];
    		$image_file = "./uploads/app/{$image_name}";
    		//判断后缀
    		if($result[2] != 'jpeg' || $result[2] != 'jpg'){
    			//return false;
    		}
    		$base64_decode = base64_decode(str_replace($result[1], '', $base64_image));
    
    		//图像检查
    		$im = imagecreatefromstring($base64_decode);
    		if($im === false){
    			imagedestroy ($im);
    			//return false;
    		}
    		imagedestroy ($im);
    		//服务器文件存储路径
    		if(file_put_contents($image_file, $base64_decode, LOCK_EX)){
    			@unlink(RUNTIME_FILE);
    			return "/uploads/app/{$image_name}";
    		} else {
    		return false;
    		}
    		}else{
    		return false;
    		}
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值