05
12月
2021
1.处理base64图片
function upload_base64($file,$ext_arr = ['jpeg','jpg','png','jepg'],$min = 0,$max = 0){
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $file, $result)){
$ext = strtolower($result[2]);
if(!in_array($ext,$ext_arr)){
$return_ext = implode(',',$ext_arr);
showMessage("只支持上传".$return_ext."文件");
}
if($ext == 'jepg'){
$ext = 'jpg';
}
$img = str_replace($result[1],'',$file);
$img_len = strlen($img);
$size = $img_len - ($img_len/8)*2;
$size_img = number_format($size / 1024,2); //图片尺寸 kb为单位
//当文件大小限制
if((!empty($min) && $min > $size_img) || (!empty($max) && $size_img > $max)){
dd('上传失败,'.$title.'文件大小限制在'.$min.'-'.$max.'KB');
}
$object = base64_decode($img);
$new_file = '所要保存的新路径';
$file_dir = dirname($filePath);
if(!is_dir($file_dir)){
mkdir($file_dir,0777,1);
}
if(strlen($object) < 150 && is_file($object)){
$object= file_get_contents($object);
}
if(file_put_contents($new_file,$object)){
return 'success';
} else {
return 'error';
}
}
}
2.处理file提交图片
$tmp_name = $file->getPathname();
$suffix = $file->getOriginalExtension(); //图片后缀
$size = $file->getSize();
$mime = $file->getMime();
if(strpos($mime,'image') !== false){
$file = getimagesize($tmp_name);
$width = $file[0];//图片宽度
$height= $file[1];//图片高度
}
3.处理远程图片
if(@get_headers($file)){
//远程图片
$ch = curl_init($file);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$tmp_name = curl_exec($ch);
$mime = get_headers($file,1)['Content-Type'];
$type_arr = explode('/',$mime);
$suffix = count($type_arr) == 2 ? $type_arr[1] : 'jpg';
}