seka19 / laravel-plupload
Laravel 5/Plupload - 处理大文件上传
0.4.2
2018-03-24 09:32 UTC
Requires
- php: >=5.5.0
- illuminate/support: ^5.1
Requires (Dev)
- mockery/mockery: ^0.9.4
- phpunit/phpunit: ^4.0
README
Laravel plupload 支持。
处理分块上传。
安装
使用 composer 安装
composer require jildertmiedema/laravel-plupload
将提供者添加到 config/app.php
'providers' => [ JildertMiedema\LaravelPlupload\LaravelPluploadServiceProvider::class, ]
如果您想使用内置的构建器,请插入外观
'aliases' => array( 'Plupload' => JildertMiedema\LaravelPlupload\Facades\Plupload::class, ),
发布资产
php artisan vendor:publish
接收文件
使用此路由在 URL /upload
上接收文件。当然,您也可以将其放在控制器中。
Route::post('/upload', function() { return Plupload::receive('file', function ($file) { $file->move(storage_path() . '/test/', $file->getClientOriginalName()); return 'ready'; }); });
发送文件
使用此插件发送文件有三种方式。
1. 使用默认 plupload HTML
使用 plupload 网站上找到的示例。
问题
如果您遇到令牌不匹配异常;
TokenMismatchException in VerifyCsrfToken.php line 53:
在您的 blade 文件中添加
<meta name="csrf-token" content="{{ csrf_token() }}">
在您的 JS 文件中添加
headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') },
例如
$('.js-uploader').pluploadQueue({ // General settings runtimes: 'html5,flash,silverlight,html4', url: '/upload/', chunk_size: '200kb', rename: false, dragdrop: true, // add X-CSRF-TOKEN in headers attribute to fix this issue headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, // add more overrides; see documentation... });
2. 简单 plupload 构建器
要使用构建器创建发送表单,您可以使用此函数
echo Plupload::make([ 'url' => 'upload', 'chunk_size' => '100kb', ]);
注意:传递给 make 函数的选项可以在 pluload 文档 中找到。
3. 扩展 plupload 构建器
echo Plupload::init([ 'url' => 'upload', 'chunk_size' => '100kb', ])->withPrefix('current')->createHtml();
替代方案
其他支持 plupload 的包