jildertmiedema/laravel-plupload

Laravel/Plupload - 处理大文件上传

安装次数: 203,966

依赖者: 1

建议者: 0

安全: 0

星标: 168

关注者: 10

分支: 58

开放问题: 3

语言:JavaScript

V0.9.0 2023-05-05 11:13 UTC

This package is auto-updated.

Last update: 2024-09-05 14:04:44 UTC


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 的包