From 80859b1a4d41aea0140deda3c930d6bac28b94ab Mon Sep 17 00:00:00 2001 From: Hankin Date: Wed, 6 Aug 2025 14:13:58 +0800 Subject: [PATCH] upload 2 --- app/Http/Controllers/CommonController.php | 13 +++- app/Http/Response/ResponseJson.php | 95 +++++++++++++++++++++++ 2 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 app/Http/Response/ResponseJson.php diff --git a/app/Http/Controllers/CommonController.php b/app/Http/Controllers/CommonController.php index 0b6b442..f8db97f 100644 --- a/app/Http/Controllers/CommonController.php +++ b/app/Http/Controllers/CommonController.php @@ -3,11 +3,13 @@ namespace App\Http\Controllers; use App\Facades\UploadService; +use App\Http\Response\ResponseJson; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Log; class CommonController extends Controller { - + use ResponseJson; private $stateMap = array( //上传状态映射表,国际化用户需考虑此处数据的国际化 "SUCCESS", //上传成功标记,在UEditor中内不可改变,否则flash判断会出错 "文件大小超出 upload_max_filesize 限制", @@ -32,8 +34,17 @@ class CommonController extends Controller "INVALID_IP" => "非法 IP" ); + public function checkToken($token): bool + { + $token2 = date("Ym-d") . "$@."; + Log::info(base64_encode($token2), [$token]); + return base64_encode($token2) == $token; + } + public function upload(Request $request) { + if (!$this->checkToken($request->input("token"))) + return $this->failure("upload token失效"); $action = $request->action; $config = config('UEditorUpload.upload'); switch ($action) { diff --git a/app/Http/Response/ResponseJson.php b/app/Http/Response/ResponseJson.php new file mode 100644 index 0000000..139e635 --- /dev/null +++ b/app/Http/Response/ResponseJson.php @@ -0,0 +1,95 @@ +jsonResponse(1, $msg, $data); + } + + public function success($msg, $data = [], $cookie = null, $jsonp = false) + { + if (request()->debug) { + return view('welcome'); + } + return $this->jsonResponse(0, $msg, $data); + } + + //接口返回失败 + public function failv2($msg, $data = [], $jsonp = false) + { + return $this->jsonResponse(3, $msg, $data); + + } + + private function jsonResponse($code, $msg, $data = []) + { + $result = [ + 'code' => $code, + 'message' => $msg, + 'data' => $data, + ]; + + return Response()->json($result); + } + + /** + * 检查用户是否登录 + * @return [type] [description] + */ + public function authCheck() + { + $guards = config('auth.guards'); + $result = false; + foreach ($guards as $key => $guard) { + if (\Auth::guard($key)->check()) { + $result = \Auth::guard($key)->user(); + continue; + } + } + return $result; + } + + public function getError($exception, $send_mail = true) + { + $error = $exception->getMessage(); + if (method_exists($exception, 'getStatusCode')) { + $status = $exception->getStatusCode(); + } elseif ($exception instanceof AuthenticationException) { + $status = 403; + //403不报警 + return; + } else { + $status = get_class($exception); + } + $route = Request()->getMethod() . ':' . Request()->getRequestUri(); + if (\Route::getFacadeRoot()->current()) { + $action = $status . ':' . \Route::getCurrentRoute()->getActionName(); + } else { + $action = $status . ':非法路由访问错误'; + } + if (method_exists($exception, 'getPrevious')) { + $err = $exception->getPrevious(); + if (!empty($err)) { + $error = $err->getMessage(); + } + } + $files = explode('/', $exception->getFile()); + $file = $files[count($files) - 1]; + $host = request()->gethost(); + $params = json_encode(request()->all(), JSON_UNESCAPED_UNICODE); + $client = Request()->header('client-os') ?: 'other'; + $server_ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ''; + $message = '服务器异常,前端:' . $client . ',ip:' . $server_ip . ',域名:' . $host . ',位置:' . $route . ',操作:' . $action . ',控制器:' . $file . ', Line:' . $exception->getLine() . ',参数:' . $params . ',用户id:' . (auth()->id() ?: '无') . ',报错内容:' . $error . ',错误码:' . $exception->getCode(); + Log::error($message); + //参数 + //邮件通知 + // Mail::to(['hankin_h@126.com', 'fkl1939@163.com'])->send(new ErrorMessage($message)); + SendMail::dispatch($message, '', '', $exception->getTraceAsString())->onQueue('error_email'); + + return $message; + } +}