itsaninho/filemanager

创建日志文件

1.0.0 2018-01-30 10:13 UTC

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)。请参阅许可文件获取更多信息。"# 文件管理器" "# 文件管理器"