做一个base64的图片上传笔记,
public function base64avatar(){
$param = $this->request->post('avatar');
if ($param) {
header('Content-type:text/html;charset=utf-8');
// $base64_image_content = $param['imgBase'];
$base64_image_content = $param;
//将base64编码转换为图片保存
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)) {
$type = $result[2];
$img = md5(uniqid(microtime(true),true)).'.jpg';
//$img=time() . ".{$type}".range(0,999999);
$file_path = 'me_img/'.date('Ymd').'/';
$path= ROOT_PATH .'public/upload/'.$file_path;
if(!file_exists($path)){
//检查是否有该文件夹,如果没有就创建,并给予最高权限
mkdir($path,0777,true);
}
$new_file = $path . $img;
//将图片保存到指定的位置
if (file_put_contents($new_file, base64_decode(str_replace($result[1], '', $base64_image_content)))) {
// echo $file_path.$img;
$data['avatar'] = $file_path.$img;//图片路径
$up = db('user')->where('id',$this->userId)->update($data);
if($up){
$this->success('修改成功');
}else{
$this->error('修改失败');
}
}else{
$this->error('保存头像失败');
}
}else{
$this->error('保存头像失败');
}
}
}