div-art/filemanager

创建 filemanager 文件

1.0.4 2018-01-30 15:53 UTC

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"