zotyo / ajax-file-uploader
此包已被废弃,不再维护。未建议替代包。
此包最新版本(v1.1.0)没有可用的许可证信息。
分别上传您的文件,然后只需将上传文件的id附加到您的表单中
v1.1.0
2016-11-22 10:48 UTC
Requires
- ramsey/uuid: ^3.0
This package is not auto-updated.
Last update: 2017-10-17 10:09:54 UTC
README
此包为您提供了更方便管理文件上传的方法。
它提供了以下功能
- 上传文件的端点
- 一个用户友好的Vue组件,用于替代常规
- 为您的Eloquent模型提供辅助特质,以轻松创建访问器和修改器
- 用于验证模型/实体文件的验证规则
默认情况下,该包配置为上传图片,但您可以使用任何MIME类型。
安装
将以下行添加到您的composer.json文件中
"zotyo/ajax-file-uploader": "dev-master"
下载包后,将PackageServiceProvider添加到您的config/app.php配置文件中的providers数组中
Zotyo\AjaxFileUploader\PackageServiceProvider::class
最后,您应该发布包的配置和一些示例。
php artisan vendor:publish --provider="Zotyo\AjaxFileUploader\PackageServiceProvider"
使用方法
该包附带了一些组件,以减少实现适当的文件上传的工作量。
注意:强烈建议通过JavaScript提交您的实体,而不是使用原生的HTML表单提交。但这不是强制性的。
文件输入
您可以将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>
端点(路由+控制器)
该包提供了一个上传文件的Http端点。您可以在配置文件中禁用此端点。如果您想定义自己的自定义端点,您仍然可以重用UploadControllerTrait。
Method | URI | Name | Action
POST | upload | | Zotyo\AjaxFileUploader\Http\UploadController@upload
验证
提交实体时,不要忘记验证文件。该包提供了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' ]; } }
Eloquent
HasFile特质提供了一些方法,您可以在模型中轻松创建访问器和修改器。在以下示例中,我们的用户模型头像是一个文件。
<?php namespace App; use Illuminate\Foundation\Auth\User as Authenticatable; use Zotyo\AjaxFileUploader\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); } }