nechehin/ laravel-plupload
Laravel 6/Plupload - 处理大文件上传 - jildertmiedema/laravel-plupload 的分支
0.9.1
2024-07-16 14:04 UTC
Requires
- php: >=7.2.5
- illuminate/support: ^6.0|^8.0|^9.0|^10.0|^11.0
README
Laravel plupload 支持。
处理分块上传。
安装
使用 composer 安装
composer require nechehin/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 的包