_init(); } protected function _init(){ } /** * 返回格式化json数据 * * @param int $code * @param string $msg * @param array $data * @return Response */ protected function json(int $code, string $msg = 'ok', array|object|null $data = []): Response { return json(['code' => $code, 'data' => $data, 'msg' => $msg]); } protected function success(string $msg = '成功', array|object|null $data = []): Response { return $this->json(0, $msg, $data); } protected function fail(string $msg = '失败', array|object|null $data = []): Response { return $this->json(1,$msg, $data); } protected function error(string $msg = '失败', array|object|null $data = []): Response { return $this->json(1,$msg, $data); } protected function _upload($request) { try{ $user = \support\Jwt::getUser(); }catch(\Exception $e){ $user = ['id'=>0]; } $savePath = $request->post('savePath','files'); $validate = Validate::rule('savePath', 'alphaNum'); $data = ['savePath' => $savePath]; if (!$validate->check($data)) { return '参数错误:'.$validate->getError(); } $savePath = trim($savePath,'/'); //$savePath = 'upload/'.$savePath.'/'.$user['id']; $savePath = $savePath.'/'.$user['id']; \support\Log::alert('savePath:'.$savePath); $mimetype = explode(',',Config('site.upload_mimetype')); $maxsize = Config('site.upload_maxsize')*1024*1024; //多文件上传 $files = $request->file(); $result = Storage::adapter('oss') ->path($savePath) ->size($maxsize) ->extYes($mimetype) ->uploads($files,0,$maxsize * count($files),false); $save_datas = []; foreach($result as $k=>$fileinfo){ $save_datas[] = [ 'user_id' => $user['id'], 'category' => 'default', 'adapter' => $fileinfo->adapter, 'origin_name' => $fileinfo->origin_name, 'file_name' => $fileinfo->file_name, 'size' => $fileinfo->size, 'mime_type' => $fileinfo->mime_type, 'extension' => $fileinfo->extension, 'file_height' => $fileinfo->file_height, 'file_width' => $fileinfo->file_width, 'file_url' => $fileinfo->file_url, 'sha1' => $fileinfo->storage_key ?:sha1_file(public_path($fileinfo->file_name)), 'use_count' => 0, ]; } $res = \app\model\Files::saveAll($save_datas); return $res; } /** * @Apidoc\Title("上传") * @Apidoc\Method("POST") */ function upload(Request $request,$return = false) { $res = $this->_upload($request); if(is_string($res)){ return $this->fail( $res); } return $this->success(__('successful'),$res); } }