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';
}

 

 

延伸阅读
    发表评论