valiant/yii2-upload-behavior

此包已被废弃,不再维护。未建议替代包。

为 ActiveRecord 提供的 Yii2 文件/图片上传行为

安装: 137

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 43

类型:yii2-extension

1.1.3 2016-12-01 08:00 UTC

This package is not auto-updated.

Last update: 2020-08-21 20:00:47 UTC


README

这是从 Yii Dream Team (http://yiidreamteam.com) 的 yii-dream-team/yii2-upload-behavior 分支出来的。

为 ActiveRecord 提供的 Yii2 文件/图片上传行为

此包包含两个类似的行为。第一个允许您保持上传的文件不变。第二个允许您为上传的图片生成一组缩略图。可以为不同的属性多次附加行为。

安装

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

运行

php composer.phar require --prefer-dist valiant/yii2-upload-behavior "*"

或在您的 composer.json 文件的 require 部分添加

"valiant/yii2-upload-behavior": "*"

FileUploadBehavior

此行为允许您通过 ActiveRecord 行为添加文件上传逻辑。

使用方法

将行为附加到您的模型类

public function behaviors()
{
    return [
        [
            'class' => '\valiant\behaviors\FileUploadBehavior',
            'attribute' => 'attachment',
            'filePath' => '@webroot/uploads/[[pk]].[[extension]]',
            'fileUrl' => '/uploads/[[pk]].[[extension]]',
        ],
    ];
}

您可以在路径模板配置中使用 Yii 路径别名,如 @app@webroot@web

您还可以在路径模板中使用额外的占位符。占位符 [[foobar]] 将被替换为适当的占位符值。

可能的路径/URL 占位符

  • [[model]] - 模型类名
  • [[pk]] - 主键的值
  • [[id]] - 与 [[pk]] 相同
  • [[extension]] - 原始扩展名
  • [[attribute]] - 属性名
  • [[id_path]] - id 子目录结构(如果模型主键是 12345,占位符值将为 1/2/3/4/5/0/0/0/0/0
  • [[id_hash]] - 通过 md5 哈希的 id 子目录结构(如果模型主键是 12345,md5 哈希是 827ccb0eea8a706c4c34a16891f84e7b,占位符值将为 8/27/ccb0eea8a706c4c34a16891f84e7b
  • [[id_hash_piece]] - id 哈希的十进制片段,将在 0-255 范围内(如果模型主键是 12345,md5 哈希是 827ccb0eea8a706c4c34a16891f84e7b,前两个十六进制数字是 82,转换为十进制并将占位符值设置为 130
  • [[attribute_name]] - 属性值,例如 [[attribute_ownerId]]

添加验证规则

public function rules()
{
    return [
        ['attachment', 'file'],
    ];
}

设置适当的表单 enctype

$form = \yii\bootstrap\ActiveForm::begin([
    'enableClientValidation' => false,
    'options' => [
        'enctype' => 'multipart/form-data',
    ],
]);

文件应成功上传。

您可以使用模型调用获取上传文件的 URL

echo $model->getUploadedFileUrl('attachment');

ImageUploadBehavior

Image upload behavior 扩展了文件上传行为,以生成图片缩略图。您可以为要生成的不同缩略图配置设置配置一系列缩略图配置。

使用方法

将行为附加到您的模型类

public function behaviors()
{
    return [
        [
             'class' => '\valiant\behaviors\ImageUploadBehavior',
             'attribute' => 'image',
             'thumbs' => [
                 'thumb' => ['width' => 400, 'height' => 300],
                 'albumThumb' => ['width' => 200],
                 'albumLogo' => ['height' => 500],
             ],
             'filePath' => '@webroot/images/[[pk]].[[extension]]',
             'fileUrl' => '/images/[[pk]].[[extension]]',
             'thumbPath' => '@webroot/images/[[profile]]_[[pk]].[[extension]]',
             'thumbUrl' => '/images/[[profile]]_[[pk]].[[extension]]',
        ],
    ];
}

您可以在路径模板配置中使用 Yii 路径别名,如 @app@webroot@web

您还可以在路径模板中使用额外的占位符。占位符 [[foobar]] 将被替换为适当的占位符值。

可能的路径/URL 占位符

  • [[model]] - 模型类名
  • [[pk]] - 主键的值
  • [[id]] - 与 [[pk]] 相同
  • [[extension]] - 原始扩展名
  • [[attribute]] - 属性名
  • [[id_path]] - id 子目录结构(如果模型主键是 12345,占位符值将为 1/2/3/4/5/0/0/0/0/0
  • [[id_hash]] - 通过 md5 哈希的 id 子目录结构(如果模型主键是 12345,md5 哈希是 827ccb0eea8a706c4c34a16891f84e7b,占位符值将为 8/27/ccb0eea8a706c4c34a16891f84e7b
  • [[id_hash_piece]] - id 哈希的十进制片段,将在 0-255 范围内(如果模型主键是 12345,md5 哈希是 827ccb0eea8a706c4c34a16891f84e7b,前两个十六进制数字是 82,转换为十进制并将占位符值设置为 130
  • [[attribute_name]] - 属性值,例如 [[attribute_ownerId]]
  • [[profile]] - 缩略图配置名称,在缩略图路径/URL 中使用它
  • [[width]] - 缩略图宽度,在缩略图路径/URL 中使用它
  • [[高度]] - 缩略图高度,在缩略图路径/URL中使用它

添加验证规则

public function rules()
{
    return [
        ['image', 'file', 'extensions' => 'jpg, gif, png'],
    ];
}

设置适当的表单 enctype

$form = \yii\bootstrap\ActiveForm::begin([
    'enableClientValidation' => false,
    'options' => [
        'enctype' => 'multipart/form-data',
    ],
]);

文件应成功上传。

您可以使用模型调用来获取上传的图片URL

echo $model->getImageFileUrl('image');

您可以为没有上传图片的模型指定默认图片

echo $model->getImageFileUrl('image', '/images/empty.jpg');

您还可以获取生成的缩略图图片URL

echo $model->getThumbFileUrl('image', 'thumb');

您可以为没有上传图片的模型指定默认缩略图

echo $model->getThumbFileUrl('image', 'thumb', '/images/thumb_empty.jpg');

许可证

MIT

链接