zotyo / u-filer
管理文件上传
v1.1.0
2017-10-18 06:36 UTC
Requires
- php: >=5.5.0
Requires (Dev)
- phpunit/phpunit: ^5.7
This package is not auto-updated.
Last update: 2024-09-15 04:58:29 UTC
README
该软件包为您提供了更方便的方式来管理 Laravel 中的文件上传。
无需每次都重新发明轮子,您的上传文件将变得简单且一致。
- 上传具有唯一名称的文件,无并发问题。
- 在 FileDescriptors 中存储上传文件的客户端信息。
- 文件对象,便于在您的应用程序中管理文件。
- 为您的 Eloquent 模型提供辅助特质,以便轻松创建访问器和突变器。
- 友好的 替代品
默认情况下,该软件包配置为上传图像,但您也可以用于任何 MIME 类型。
安装
composer require "zotyo/u-filer"
下载软件包后,将 PackageServiceProvider 添加到您 config/app.php 的 providers 数组中
Zotyo\uFiler\PackageServiceProvider::class
最后,您应该发布软件包的配置和一些示例。
php artisan vendor:publish --provider="Zotyo\uFiler\PackageServiceProvider"
使用方法
该软件包包含几个组件,以减少实现适当文件上传的麻烦。
文件输入
您可以将 file-input.vue 组件发布到您的 /resources/assets/js/components 文件夹。修改组件以适应您的设计。
<div class="form-group"> <label for="avatar">Avatar</label> <file-input id="avatar" v-model="user.avatar"></file-input> </div>
Vue 组件将文件上传到特定的端点。
注意:如果您愿意,可以完全不使用 VueJS。
端点(路由+控制器)
该软件包提供了一个用于上传文件的 HTTP 端点。您可以在配置文件中禁用该端点。如果您想定义自定义端点,您仍然可以重用 UploadControllerTrait。
Method | URI | Name | Action
POST | upload | upload | Zotyo\uFiler\Http\UploadController@upload
Eloquent
HasFile 特质提供了方法,您可以使用它们轻松地在模型中创建访问器和突变器。以下示例中,用户的头像是一个文件。
<?php namespace App; use Illuminate\Foundation\Auth\User as Authenticatable; use Zotyo\uFiler\HasFile; class User extends Authenticatable { use HasFile; protected $fillable = ['avatar']; protected $appends = ['avatar']; public function getAvatarAttribute() { return $this->getFile('avatar'); } public function setAvatarAttribute($value) { $this->setFile('avatar', $value); } }
验证
提交实体时,不要忘记验证文件。该软件包提供了 verify-file-by-token 验证规则,以防止文件被劫持。
<?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; class UserFormRequest extends FormRequest { public function rules() { return [ 'avatar' => 'required|verify-file-by-token' ]; } }