php 将base64转换成图片并保存 阿星小栈

时间:2023-01-16 19:55:28

 

 public function setBaseToImg(Request $request){
$base64_image_content
= $request->get('imgBase64','imgBase64');
//匹配出图片的格式
$preg = preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result);
if ($preg){
$type
= $result[2];
$new_file
= public_path('/html5/blessing/baseImg/');
if(!file_exists($new_file))
{
//检查是否有该文件夹,如果没有就创建,并给予最高权限
mkdir($new_file, 0700);
}
$new_file
= $new_file.time().uniqid().".{$type}";
if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){
return $new_file;
}
else{
return false;
}
}
}

此处我用了Laravel框架自带方法,下面是原始方法,都可用

  public function setBaseToImg(){
$base64_image_content
= $_POST['imgBase64'];
//匹配出图片的格式
$preg = preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result);
if ($preg){
$type
= $result[2];
$new_file
= '/html5/blessing/baseImg/';
if(!file_exists($new_file))
{
//检查是否有该文件夹,如果没有就创建,并给予最高权限
mkdir($new_file, 0700);

}
$new_file
= $new_file.time().uniqid().".{$type}";
if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))){
return $new_file;
}
else{
return false;
}
}
}