/** * 图片上传接口 */ public function base64upload() { if (request()->isPost()) { $base64_image_content = $_POST['base64']; //重复评论内容做20秒间隔设置 // $distinct_student_key = md5(json_encode([ // 'data' => ['base64_image_content'=>$base64_image_content], // 'action' => 'base64upload', // ])); // $last_student = Cache::store('redis')->get($distinct_student_key); // if ($last_student && isset($last_student['key']) && $last_student['key'] == $distinct_student_key) { // $this->error(__('请勿重复提交')); // } if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $result)) { //图片后缀 $type = $result[2]; if ($type == 'jpeg') { $type = 'jpg'; } //保存位置--图片名 $image_name = date('His') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT) . "." . $type; $image_path_url=date('Ymd') . '/' . $image_name;//返回路径的url $image_url = '/uploads/mech/'. $image_path_url;//总的url----机构的图片 if (!is_dir(dirname('./' . $image_url))) { mkdir(dirname('./' . $image_url), 0777,true); chmod(dirname('./' . $image_url), 0777); // umask($oldumask); } //解码 $decode = base64_decode(str_replace($result[1], '', $base64_image_content)); if (file_put_contents('./' . $image_url, $decode)) { $data['imageName'] = $image_name; $data['image_url'] = $image_url; $data['image_true_url'] = $this->request->domain().$image_url; $data['image_path_url']=$image_path_url; $data['type'] = $type; $code = 0; $msg = '保存成功!'; } else { $data['imgageName'] = ''; $data['image_true_url'] = ''; $data['image_url'] = ''; $data['type'] = ''; $code = 1; $msg = '图片保存失败!'; } } else { $data['imgageName'] = ''; $data['image_true_url'] = ''; $data['image_url'] = ''; $data['type'] = ''; $code = 1; $msg = 'base64图片格式有误!'; } // Cache::store('redis')->set($distinct_student_key,5,10); return json(['code'=>$code,'data'=>$data,'msg'=>$msg]); } }
发表评论 取消回复