i-avatar777/yii2-widget-file-upload7

文件上传小部件

0.0.11 2021-09-19 19:54 UTC

This package is auto-updated.

Last update: 2024-09-20 02:59:22 UTC


README

文件上传小部件

用于\cs\base\FormActiveRecord或作为独立于表单的组件。如果是第一种情况,还可以指定在删除表行时删除文件的触发事件。

上传到AvatarCloud服务器或本地服务器(如果已创建环境)。

本地服务器上传环境

安装

使用示例

<?= \iAvatar777\widgets\FileUpload7\FileUpload::widget([
    'model'      => $model,
    'attribute'  => 'file',
]) ?>
<?= $form->field($model, 'user_foto')->widget('\iAvatar777\widgets\FileUpload7\FileUpload',
[
    'update'    => [
        [
            'function' => 'crop',
            'index'    => 'crop',
            'options'  => [
                'width'  => '300',
                'height' => '300',
                'mode'   => 'MODE_THUMBNAIL_CUT',
            ],
        ],
    ],
    'settings' => [
        'maxSize'           => 20 * 1000,
        'server'            => Yii::$app->AvatarCloud->url,
        'controller'        => 'upload',
        'functionSuccess'   => new \yii\web\JsExpression(<<<JS
function (response) {
    // Вызываю AJAX для записи в school_file
    ajaxJson({
        url: '/site/file-upload7-save',
        data: {
            file: response.url,
            school_id: 71,
            type_id: 25,
            size: response.size, // Размер файла в байтах
            update: response.update
        },
        success: function (ret) {
            
        }
    });
}

JS

        ),
    ],
    'events'    => [
        'onDelete' => function ($item) {
            $r = new \cs\services\Url($item['image']);
            $d = pathinfo($r->path);
            $start = $d['dirname'] . '/' . $d['filename'];

            \common\models\school\File::deleteAll(['like', 'file', $start]);
        },
    ],
]
)
?>

参数

FileUpload7.init(options)或settings参数

  • controller - 指向\iAvatar777\assets\JqueryUpload1\Upload2Controller的控制器标识符
  • selector - JQuery查询,用于识别(input)上传元素。默认'>.FileUpload7'
  • maxSize - 文件最大大小(KB)
  • server - 外部服务器路径,默认''(例如 'https://cloud1.i-am-avatar.com')
  • allowedExtensions - 允许上传的扩展名数组。默认['jpg', 'jpeg', 'png']
  • accept - 可上传的MIME类型。默认'image/*'
  • data - 要发送到文件保存操作的数组数据
  • button_label - 按钮文本

工作原理

确定上传服务器

?

如果删除图片时需要传递密钥,则如何使用小部件?如果与AvatarCloud一起工作,则意味着需要传递用于云删除文件的密钥。