kenarkose/transit

该软件包已被废弃,不再维护。未建议替代软件包。

Laravel 5 的简易文件上传和下载

2.1.3 2018-03-30 07:23 UTC

README

Laravel 5 的简易文件上传和下载。

Build Status Total Downloads Latest Stable Version License

特性

  • 兼容 Laravel 5
  • 干净的 API 用于上传和下载文件
  • 上传文件时的自动(可选)验证
  • 文件存储、模型和验证的自定义选项
  • 模型和迁移生成器
  • 删除上传的文件
  • 为简单开发提供 phpunit 测试套件

安装

安装 Transit 非常简单。

  1. 通过 Composer 引入此软件包。

    {
        "require": {
            "kenarkose/transit": "~2.1"
        }
    }
  2. 为了注册 Transit 服务提供者,请将 'Kenarkose\Transit\Provider\TransitServiceProvider' 添加到您的 config/app.php 文件中的 providers 数组的末尾。

    'providers' => array(
    
        'Illuminate\Foundation\Providers\ArtisanServiceProvider',
        'Illuminate\Auth\AuthServiceProvider',
        ...
        'Kenarkose\Transit\Provider\TransitServiceProvider',
    
    ),
  3. 为了持久化上传的文件信息,您必须为 'Kenarkose\Transit\File\File' 模型创建一个迁移,这是用于数据库持久化的默认模型。为此,请使用以下命令。

        php artisan transit:migration

    在提示时或在修改生成的迁移文件后,不要忘记迁移数据库。

  4. 您可以通过提供的 Facades 或服务容器来访问 Transit 提供的服务。

    // Symfony\Component\HttpFoundation\File\UploadedFile $uploadedFile
    Uploader::upload($uploadedFile);
    app()->make('transit.upload')->upload($uploadedFile);
    
    // Kenarkose\Transit\Contract\Downloadable $fileModel
    return Downloader::download($fileModel);
    return app()->make('transit.download')->download($fileModel);

    为了注册 Facades,请将以下 Facades 添加到您的 config/app.php 文件中的 aliases 数组末尾。

    'aliases' => array(
    
        'App'        => 'Illuminate\Support\Facades\App',
        'Artisan'    => 'Illuminate\Support\Facades\Artisan',
        ...
        'Downloader'   => 'Kenarkose\Transit\Facade\Downloader',
        'Uploader'     => 'Kenarkose\Transit\Facade\Uploader',
    
    ),
  5. 最后,您可以通过发布和修改配置文件来配置 Transit 的默认行为。为此,请使用以下命令。

    php artisan vendor:publish

    然后,您将在 config/transit.php 路径上找到配置文件。有关选项的更多信息,请参阅该文件的注释。配置文件中的所有选项都是可选的,并且如果没有指定则回退到默认值;如果要使用默认值,请删除该选项。

  6. 请检查测试和源代码以获取更多文档。

自定义模型

您可能需要针对您的案例创建自定义模型;例如,当您希望使用 Ownable 时。您可以使用以下命令为 Transit 生成新模型。

    php artisan transit:model

如果您不想使用生成器,请确保您的模型实现了 Kenarkose\Transit\Contract\Uploadable 接口。请注意,如果您想使用自定义模型,您应该使用 php artisan vendor:publish 命令发布配置文件,并在配置文件中更改模型类的路径。或者,您也可以在运行时通过使用 modelName 方法配置 UploadService。这对于需要注册模型名称的 UploadService 是必需的。

Uploader::modelName('Custom\Uploadable\Model');
// or
app()->make('transit.upload')->modelName('Custom\Uploadable\Model');

您还可以为上传、下载服务和删除文件使用不同的模型。但您必须分别实现 Kenarkose\Transit\Contract\UploadableKenarkose\Transit\Contract\DownloadableKenarkose\Transit\Contract\Deletable 接口。此外,您还可以使用 Kenarkose\Transit\File\UploadableKenarkose\Transit\File\DownloadableKenarkose\Transit\File\Deletable trait 为 Eloquent 模型提供所需的功能。

许可证

Transit 在 MIT 许可证 下发布。