dbt/laravel-filepond
Laravel的Filepond服务器实现
v0.1.1
2020-09-18 17:00 UTC
Requires
- php: ^7.2
- laravel/framework: ^5.8.0
Requires (Dev)
- ext-pcov: *
- friendsofphp/php-cs-fixer: ^2.15
- larapack/dd: ^1.1
- orchestra/database: ~3.8.0
- orchestra/testbench: ~3.8.0
- orchestra/testbench-browser-kit: ~3.8.0
- phpunit/phpunit: ^7.0
- vimeo/psalm: ^3.1
This package is auto-updated.
Last update: 2024-09-19 01:43:15 UTC
README
本包提供了Filepond的Laravel后端实现。
要求
此LaravelFilepond包需要PHP 7.2+和Laravel 5.8+。
安装
LaravelFilepond可以通过composer安装。
composer require dbt/laravel-filepond
此包将自动注册一个服务提供者。
您可以可选地发布配置文件。
php artisan vendor:publish --provider="Dbt\LaravelFilepond\LaravelFilepondServiceProvider" --tag="config"
这是配置文件的默认内容
<?php return [ /** * Disk on which to store temporary files */ 'disk_name' => env('FILEPOND_TEMP_DISK', 'local'), /** * Set a validation rules for temporary files * Example: ['file', 'mimes:png,jpg'] */ 'temporary_file_rules' => ['required', 'file', 'max:12288'], /** * Name of field under file will be posted to server for process request */ 'field' => env('FILEPOND_FIELD', 'filepond'), /** * This suffix will be used for meta files */ 'meta_file_suffix' => '.metadata', /** * Middleware for filepond routes. It can be string or an array */ 'middleware' => 'web' ];
默认情况下,laravel filepond将临时文件存储在Laravel的本地磁盘上。如果您想使用专用磁盘,应向config/filesystems.php中添加磁盘。这是一个典型的配置
// ... 'disks' => [ // ... 'temp' => [ 'driver' => 'local', 'root' => storage_path('temp'), ], // ...
别忘了忽略您配置的磁盘目录,以免文件最终出现在您的git仓库中。
基本用法
配置filepond
要从您的表单上传文件到由laravel filepond包提供的端点,您必须设置以下filepond配置
FilePond.setOptions({ server: { process: '/filepond/process', revert: '/filepond/revert', headers: { 'Accept': 'application/json', 'X-CSRF-TOKEN': csrf }, } })
一旦文件成功上传到服务器,filepond将文件的唯一ID存储在隐藏的输入字段中。
访问文件
您可以在控制器中像访问常规HTTP上传文件一样访问上传的文件。您只需使用Dbt\LaravelFilepond\Request
而不是Illuminate\Http\Request
use Dbt\LaravelFilepond\Request; public function __invoke(Request $request) { $request->file('avatar')->store('avatars'); }
验证请求
当您将表单提交到服务器时,您可能想要验证您的表单请求。验证filepond上传的文件与验证HTTP上传文件完全相同。
use Dbt\LaravelFilepond\Request; public function __invoke(Request $request) { $request->validate([ 'avatar' => ['required', 'file', 'image', 'min:2', 'max:500'] ]); $request->file('avatar')->store('avatars'); }
Laravel filepond检查请求中文件的唯一文件ID,并在验证期间用上传的文件替换字段。
等等。
有关详细信息,请参阅CONTRIBUTING。MIT许可证(MIT)。有关更多信息,请参阅许可证文件。