kenarkose / transit
Laravel 5 的简易文件上传和下载
Requires
- php: >=5.4.0
Requires (Dev)
- mikey179/vfsstream: ~1.5
- mockery/mockery: 0.9.*
- orchestra/testbench: ~3.1
- phpunit/phpunit: ~4.0
Suggests
- kenarkose/ownable: Allows ownership for Eloquent models on Laravel 5.
- laravel/framework: This package requires Laravel 5.
README
Laravel 5 的简易文件上传和下载。
特性
- 兼容 Laravel 5
- 干净的 API 用于上传和下载文件
- 上传文件时的自动(可选)验证
- 文件存储、模型和验证的自定义选项
- 模型和迁移生成器
- 删除上传的文件
- 为简单开发提供 phpunit 测试套件
安装
安装 Transit 非常简单。
-
通过 Composer 引入此软件包。
{ "require": { "kenarkose/transit": "~2.1" } }
-
为了注册 Transit 服务提供者,请将
'Kenarkose\Transit\Provider\TransitServiceProvider'
添加到您的config/app.php
文件中的providers
数组的末尾。'providers' => array( 'Illuminate\Foundation\Providers\ArtisanServiceProvider', 'Illuminate\Auth\AuthServiceProvider', ... 'Kenarkose\Transit\Provider\TransitServiceProvider', ),
-
为了持久化上传的文件信息,您必须为 'Kenarkose\Transit\File\File' 模型创建一个迁移,这是用于数据库持久化的默认模型。为此,请使用以下命令。
php artisan transit:migration
在提示时或在修改生成的迁移文件后,不要忘记迁移数据库。
-
您可以通过提供的 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', ),
-
最后,您可以通过发布和修改配置文件来配置 Transit 的默认行为。为此,请使用以下命令。
php artisan vendor:publish
然后,您将在
config/transit.php
路径上找到配置文件。有关选项的更多信息,请参阅该文件的注释。配置文件中的所有选项都是可选的,并且如果没有指定则回退到默认值;如果要使用默认值,请删除该选项。 -
请检查测试和源代码以获取更多文档。
自定义模型
您可能需要针对您的案例创建自定义模型;例如,当您希望使用 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\Uploadable
、Kenarkose\Transit\Contract\Downloadable
和 Kenarkose\Transit\Contract\Deletable
接口。此外,您还可以使用 Kenarkose\Transit\File\Uploadable
、Kenarkose\Transit\File\Downloadable
和 Kenarkose\Transit\File\Deletable
trait 为 Eloquent 模型提供所需的功能。
许可证
Transit 在 MIT 许可证 下发布。