config = SettingModel::getItem('storage'); // 验证用户 $this->user = $this->getUser(); } /** * 身份证照片 */ public function idcard() { $post = $this->postData(); if (empty($post['order_no'])) { return json(['code' => 0, 'msg' => '订单号为空']); } if (empty($post['set'])) { return json(['code' => 0, 'msg' => '正反标识为空']); } if (empty($_FILES)) { return json(['code' => 0, 'msg' => '请选择上传图片']); } $temp = explode(".",$_FILES['iFile']["name"]); $extension = end($temp); $srt = $post['set'] == 1?'A':'b'; $imageName = $post['order_no'].'_'.$srt.'.'.$extension; $tempPath = root_path('public') .'idcard/'.date('Ymd'); !is_dir($tempPath) && mkdir($tempPath, 0755, true); $imageSrc = $tempPath."/". $imageName; //图片名字 if (!move_uploaded_file($_FILES['iFile']["tmp_name"],$imageSrc)) { return json(['code' => 0, 'msg' => '上传失败!']); } $src = base_url().'idcard/'.date('Ymd').'/'.$imageName; return json(['code' => 1, 'msg' => '上传成功', 'src' => $src]); } /** * 图片上传接口 */ public function image() { // 实例化存储驱动 $StorageDriver = new StorageDriver($this->config); // 图片信息 $fileInfo = request()->file('iFile'); if(!$StorageDriver->validate('iFile', $fileInfo, 'image')){ return json(['code' => 0, 'msg' => $StorageDriver->getError()]); } // 设置上传文件的信息 $StorageDriver->setUploadFile('iFile'); // 上传图片 $saveName = $StorageDriver->upload(); if ($saveName == '') { return json(['code' => 0, 'msg' => '图片上传失败' . $StorageDriver->getError()]); } $saveName = str_replace('\\', '/', $saveName); // 图片上传路径 $fileName = $StorageDriver->getFileName(); // 添加文件库记录 $uploadFile = $this->addUploadFile($fileName, $fileInfo, 'image', $saveName); $data = [ 'file_id' => $uploadFile['file_id'], 'file_path' => $uploadFile['file_path'], ]; // 图片上传成功 return json(['code' => 1, 'msg' => '图片上传成功', 'data' => $data]); } /** * 添加文件库上传记录 */ private function addUploadFile($fileName, $fileInfo, $fileType, $savename) { // 存储引擎 $storage = $this->config['default']; // 存储域名 $fileUrl = isset($this->config['engine'][$storage]['domain']) ? $this->config['engine'][$storage]['domain'] : ''; // 添加文件库记录 $model = new UploadFileModel; $data = $this->postData(); $model->add([ 'storage' => $storage, 'file_url' => $fileUrl, 'file_name' => $fileName, 'save_name' => $savename, 'file_size' => $fileInfo->getSize(), 'file_type' => $fileType, 'extension' => $fileInfo->getOriginalExtension(), 'real_name' => $fileInfo->getOriginalName(), 'is_user' => 1, 'app_id' => $data['app_id'] ]); return $model; } }