div-art / filemanager
创建 filemanager 文件
Requires
This package is not auto-updated.
Last update: 2024-09-29 05:34:57 UTC
README
为 Laravel 5.5 优化的 Filemanager 包
安装
要安装,请在项目目录中运行以下命令
$ composer require div-art/filemanager
然后在 config/app.php
中将以下内容添加到 providers
数组中
\Divart\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:secret
现在我将创建一个中间件来检查令牌是否有效,以及当令牌过期时可以处理异常。
php artisan make:middleware VerifyJWTToken
使用此中间件,您可以过滤请求并验证 JWT 令牌。现在打开您的 VerifyJWTToken 中间件,并添加以下代码行。
app/Http/Middleware/VerifyJWTToken.php pop-uptext
<?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=myfilemanager
由于文件管理器仅适用于授权用户,您需要连接到数据库,并为用户创建一个带有最小字段(电子邮件、密码)的标签。如果您还没有,可以使用以下命令完成
php artisan make:auth
可用路由
要使用文件管理器,您需要通过 POST 方法登录,向此路由发送电子邮件地址和密码以授权并接收令牌
http.youdomain.com/auth/login
文件管理器路由
所有文件管理器路径都有一个前缀 'filemanager'
示例
方法 GET
{http.youdomain.com}/filemanager
此方法打开文件管理器并对其进行扫描
方法 GET
{http.youdomain.com}/filemanager/folder/{path to folder?}
此路由打开所选文件夹
方法 POST
{http.youdomain.com}/filemanager/folder/create/{path to folder?}
此方法在此目录中创建新文件夹
需要发送数据:'name' - 是文件夹名称
方法 POST
{http.youdomain.com}/filemanager/file/create/{path to file?}
此方法创建文件
需要发送:'name' 和 'data',其中 'name' 的值是文件名称和您的扩展名,'data' 是文件内容
方法 POST
{http.youdomain.com}/filemanager/file/upload/{path to file?}
此方法上传文件
方法 PUT
{http.youdomain.com}/filemanager/folder/update/{path to folder}
此方法更新(重命名)此目录中的所选文件夹
需要发送数据:'name'、'newname',其中 'name' 是所选文件夹的名称,'newname' 是新文件夹名称
方法 PUT
{http.youdomain.com}/filemanager/file/update/{path to file?}
需要发送:'name' 和 'data',其中 'name' 的值是文件名称和您的扩展名,'data' 是文件内容
方法 DELETE
{http.youdomain.com}/filemanager/folder/delete/{path to folder}
此方法删除此目录中的所选文件夹
需要发送数据:'name',其值是所选文件夹的名称
方法 DELETE
{http.youdomain.com}/filemanager/file/delete/{path to file?}
需要发送:'name' 和要删除的文件
方法 GET
{http.youdomain.com}/filemanager/file/{filename}/folder/{path to file?}
此方法返回文件数据
方法 POST
{http.youdomain.com}/filemanager/folder/changelocation/{path to folder}
此方法更改文件夹位置及其附件中的文件位置
需要发送数据:'from'、'to'。'from' - 来源地址,'to' - 移动到的位置
方法 POST
{http.youdomain.com}/filemanager/file/changelocation/{path to folder?}
此方法更改文件位置。需要发送数据:'from'、'to'。'from' - 来源地址,'to' - 移动到的位置
方法 POST
{http.youdomain.com}/filemanager/folder/{folder?}
此方法接受用于将项目排序到文件管理器中的数据
需要发送数据:'value' 和 'type'。'value' 可能是重要的 'size' 或 'time','type' 可能是重要的 'SORT_ASC' 或 SORT_DESC。默认为 'value' = 'time','type' = SORT_ASC
许可证
MIT 许可证 (MIT)。请参阅许可证文件获取更多信息。"# Filemanager" "# Filemanager"