vkabachenko/yii2-filepond

基于 filepond js 库的 Yii2 上传文件模块

安装次数: 492

依赖: 0

建议者: 0

安全: 0

星标: 5

关注者: 2

分支: 7

开放问题: 1

类型:yii2-extension

dev-master 2020-03-07 10:27 UTC

This package is not auto-updated.

Last update: 2024-09-15 08:34:01 UTC


README

此扩展允许您在 yii2 项目中将 Filepond 上传 js 库 作为小部件使用。

安装

安装此扩展的首选方式是通过 composer

运行以下命令

php composer.phar require  vkabachenko/yii2-filepond

或者将以下内容添加到您的 composer.json 文件的 require 部分中。

"vkabachenko/yii2-filepond": "dev-master"

使用

将扩展添加到您的配置文件中的 module 部分

    'modules' => [
       'filepond' => [
           'class' => \vkabachenko\filepond\Module::class
       ]
    ],

之后,您可以在项目中使用 Filepond 库上传文件。

不带模型的单个文件上传

带模型的单个文件上传

不带模型的多个文件上传

带模型的多个文件上传

Filepond 选项

文档 中描述的 Filepond 选项可以通过设置 instanceOptionssettingsOptions 来设置。

这是首选方式

    <?= FilepondWidget::widget([
            'name' => 'file',
            'instanceOptions' => [
                'required' => true,
                'maxFiles' => 10,
                ... other options ...
            ]
         ]);
    ?>

Filepond 插件

如果您想向小部件添加一些 Filepond 插件,将允许插件选项设置为 true。例如,要添加文件类型验证插件,设置 allowFileSizeValidation

    <?= FilepondWidget::widget([
            'name' => 'file',
            'instanceOptions' => [
                'allowFileSizeValidation' => true,
                'maxFileSize' => '10M',
                ... other options ...
            ]
         ]);
    ?>

验证

只有客户端验证可用。这种验证是文件pond库的一部分。您可以添加文件大小和文件类型验证。文件类型验证的示例

    <?= FilepondWidget::widget([
            'name' => 'file',
            'instanceOptions' => [
                'allowFileTypeValidation' => true,
                'acceptedFileTypes' => ['image/*']
            ]
                ... other options ...
            ]
         ]);
    ?>

本地化

原始库没有本地化,只有英文标签。此小部件也有俄语翻译。要应用本地化,您必须在 Yii 设置或直接在小部件中设置 language 选项

    <?= FilepondWidget::widget([
            'name' => 'file',
            'language' => 'ru-RU'
         ]);
    ?>

页面上的两个或更多小部件实例

只需分开小部件类的定义。

小部件 1

    <?= FilepondWidget::widget([
            'filepondClass' => 'filepond-class-1',
            'name' => 'file',
            'instanceOptions' => [
                ... first widget options ...
            ]
         ]);
    ?>

小部件 2

    <?= FilepondWidget::widget([
            'filepondClass' => 'filepond-class-2',
            'model' => $uploadForm,
            'attribute' => 'files[]',
            'instanceOptions' => [
                ... second widget options ...
            ]
         ]);
    ?>