itsaninho / filemanager
创建日志文件
Requires
This package is not auto-updated.
Last update: 2024-09-23 06:31:57 UTC
README
为 Laravel 的文件管理器包
安装
要安装,请在您的项目目录中运行以下命令
$ composer require itsaninho/filemanager
然后在 config/app.php 中将以下内容添加到 providers 数组中
\Itsaninho\Filemanager\FilemanagerServiceProvider::class,
'Tymon\JWTAuth\Providers\JWTAuthServiceProvider',
同样在 config/app.php 中,将 Facade 类添加到别名数组中
'Filemanager' => \Divart\Filemanager\Facades\Filemanager::class,
'JWTAuth' => 'Tymon\JWTAuth\Facades\JWTAuth'
配置
要发布 Filemanager 的配置文件,请运行以下 vendor:publish 命令
php artisan vendor:publish --provider="Divart\Filemanager\FilemanagerServiceProvider"
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\JWTAuthServiceProvider"
现在,为了令牌加密,我需要运行以下代码行来生成一个密钥
php artisan jwt:generate
现在我将创建一个中间件来检查令牌是否有效,也可以处理令牌过期时的异常。
php artisan make:middleware VerifyJWTToken
使用这个中间件,您可以过滤请求并验证 JWT 令牌。现在打开您的 VerifyJWTToken 中间件并添加以下代码行。
app/Http/Middleware/VerifyJWTToken.php 弹出文本
<?php
namespace App\Http\Middleware;
use Closure;
use JWTAuth;
use Tymon\JWTAuth\Exceptions\JWTException;
use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException;
class VerifyJWTToken
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
try{
$user = JWTAuth::toUser($request->input('token'));
}catch (JWTException $e) {
if($e instanceof \Tymon\JWTAuth\Exceptions\TokenExpiredException) {
return response()->json(['token_expired'], $e->getStatusCode());
}else if ($e instanceof \Tymon\JWTAuth\Exceptions\TokenInvalidException) {
return response()->json(['token_invalid'], $e->getStatusCode());
}else{
return response()->json(['error'=>'Token is required']);
}
}
return $next($request);
}
}
handle 方法中的 try 块检查请求的令牌是否通过 JWTAuth 验证,如果没有验证,则异常将在 catch 块中处理,并返回相应的状态。
现在将此中间件注册到您的内核中,以便在每次 HTTP 请求时运行。app/Http/Kernel.php
protected $routeMiddleware = [
...
'jwt.auth' => \App\Http\Middleware\VerifyJWTToken::class,
];
用法
从 ENV 文件添加
#FILEMANAGER_LOCATION - 文件管理器位置 FILEMANAGER_LOCATION=filemanager
可用路由
要与文件管理器交互,您需要通过 POST 方法登录,发送电子邮件地址和密码到此路由以进行授权并接收令牌
http.youdomain.com/auth/login
文件管理器路由
所有文件管理器路径都有一个前缀 'filemanager'
示例
方法 GET http.youdomain.com/filemanager 此方法打开文件管理器并扫描它
方法 POST http.youdomain.com/filemanager 此方法接受将项目排序到文件管理器中的数据
方法 GET http.youdomain.com/filemanager/folder/{路径到文件夹} 此路由打开所选文件夹
方法 POST http.youdomain.com/filemanager/folder/{路径到文件夹}/create 此方法在此目录中创建新文件夹,需要发送数据:'name',其中 'name' 是文件夹的名称
方法 PUT http.youdomain.com/filemanager/folder/{路径到文件夹}/update 此方法更新(重命名)所选文件夹,需要发送数据:'name'、'newname',其中 'name' 是所选文件夹的名称,'newname' 是新文件夹的名称
方法 DELETE http.youdomain.com/filemanager/folder/{路径到文件夹}/delete 此方法删除所选文件夹,需要发送数据:'name',其中值是所选文件夹的名称
方法 POST http.youdomain.com/filemanager/folder/{路径到文件夹}/changelocation 此方法更改文件夹的位置及其附件中的文件,需要发送数据:'from'、'to'。'from' - 来源地址,'to' - 移动到的地方
方法 GET http.youdomain.com/filemanager/folder/{文件路径}/file/{文件名} 此方法发送文件数据,需要发送数据:'name',其中值是所选文件夹的名称
方法 POST http.youdomain.com/filemanager/folder/{路径到文件}/file/create 需要发送:'name' 和 'data',其中 'name' 是文件的名称和扩展名,'data' 是文件内容
方法 PUT http.youdomain.com/filemanager/folder/{路径到文件}/file/update 需要发送:'name' 和 'data',其中 'name' 是文件的名称和扩展名,'data' 是文件内容
方法 POST http.youdomain.com/filemanager/folder/{路径到文件}/file/upload 此方法上传文件
方法 DELETE http.youdomain.com/filemanager/folder/{路径到文件}/file/delete 需要发送:'name',文件将被删除
方法 POST http.youdomain.com/filemanager/folder/{路径到文件夹}/file/changelocation 此方法更改文件的位置,需要发送数据:'from'、'to'。'from' - 来源地址,'to' - 移动到的地方
许可证
麻省理工学院许可证(MIT)。请参阅许可文件获取更多信息。"# 文件管理器" "# 文件管理器"