首页 > 技术文章 > 小程序将base64的多张图片,传到tp5后台

yunhubuxi 2020-05-19 10:25 原文

zhu要是前端传过来的数据是base64的数据库存储不了base64的数据,因存储量太过于大,因此后台要将base64的数据转换成,34124323534.jpg等格式的,数据库才可将其存储

 

 源码暂时没有贴上来

 

 

 

源码

//病例诊断
function blzdzms($blzdzm){
//这是本地的地址
//$path = str_replace('\\', '/', ROOTPATH.'data/img/'.date('Ymd',time()));
//这是服务器的地址
//$path = "/publicimg";
//这是服务器的地址
$path = ROOT_PATH.'public/Uploads/image';
if($blzdzm){
$nnpic = [];
foreach($blzdzm as $k=>$v){
$base64_img = trim($v);
$up_dir = $path;
//$up_dir = 'Public/Console/images/home/'.date('Y',time()).'/'.date('m',time());
if(!is_dir($up_dir)){
mkdir($up_dir,0777,true);
}
if(preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_img, $result)){
$type = $result[2];
if(in_array($type,array('pjpeg','jpeg','jpg','gif','bmp','png'))){
$new_name = time().uniqid();
//$new_file = $up_dir.'/'.$new_name.'.'.$type;
$new_file = $up_dir.'/'.$new_name.'.'.$type;
$base64_1 = str_replace($result[1],'', $base64_img);
if(file_put_contents($new_file, base64_decode($base64_1))){
$pic = $new_file;
$nnpic[] = $pic;
//array_search(max($nnpic),$nnpic);
//$nnpic = $pic.','.$nnpic;
//$nnpic = array_unique(array_merge(explode(",",$pic),explode(",", $new_file)));
//var_dump(array_search(max($nnpic),$nnpic));
}else{
echo '上传失败';die;
}

}else{
//文件类型错误
echo '文件类型错误';die;
}
}else{
//文件错误
echo 'base64错误';die;
}
}
if($nnpic){
//转base64的数据
return implode(',',$nnpic);
//var_dump(implode(',',$nnpic));
echo '成功';die; //返回用逗号隔开的上传后的图片路径
}
}else{
echo '参数错误';die;
}
}

推荐阅读