file("file"); $original_name = $file->getClientOriginalName(); $extension = last(explode(".", $original_name)); if (!in_array($extension, ["jpg", "jpeg", "gif", "png", "bmp"])) { return response()->json([ "errorcode" => "403", "errormsg" => "不正确的文件格式" ]); } $save_folder = $request->folder ? $request->folder : "manager"; if (!is_dir(Storage::path($save_folder))) { Storage::makeDirectory($save_folder); } $name = uniqid() . "." . $extension; $store_result = $file->storeAs($save_folder, $name); $upload = new Uploads(); $upload->original_name = $original_name; $upload->folder = $save_folder; $upload->name = $name; $upload->extension = $extension; $upload->creator_type = get_class($this->manager); $upload->creator_id = $this->manager->id; $upload->size = Storage::size($save_folder . "/" . $name); $upload->save(); if ($save_folder == "public") { $upload->public_path = "/storage/" . $name; } else { $upload->public_path = null; } return response()->json($upload); } catch (\Exception $exception) { return response()->json([ "errorcode" => $exception->getCode(), "errormsg" => $exception->getMessage() ]); } } /** * @OA\Get( * path="/manager/get-attachment/{id}", * tags={"管理端共用接口"}, * summary="V2-获取附件,进行展示或下载", * description="获取附件,进行展示或下载", * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), * @OA\Parameter(name="id", in="path", @OA\Schema(type="string"), required=true, description="id"), * @OA\Response( * response="200", * description="获取附件,进行展示或下载" * ) * ) */ public function getAttachment($id) { $attachment = Uploads::find($id); if (!$attachment) { abort("404"); } if (!Storage::exists($attachment->folder . "/" . $attachment->name)) { abort("404"); } return Storage::download($attachment->folder . "/" . $attachment->name, null, [ 'Cache-Control' => 'no-cache, no-store, must-revalidate', 'Pragma' => 'no-cache', 'Expires' => '0', ], null); } }