Skip to content

Releases: moxuandi/yii2-helpers

ArrayHelper:itemsMerge()函数添加保留部分数组键功能

02 Apr 06:21
Compare
Choose a tag to compare
v2.2.0.4

ArrayHelper:itemsMerge()函数添加保留部分数组键功能

移除文件大小限制

22 Dec 08:29
Compare
Choose a tag to compare

该扩展不再对上传文件的大小进行代码层面的判断, 如需限制上传文件大小, 请使用nginx/apache+php`限制

递归数组树状结构时允许忽略空的子集

10 Dec 06:41
cc3aafa
Compare
Choose a tag to compare
ArrayHelper::itemsMerge($models, 0, 'id', 'pid', 'children', true);

保存入库允许自定义Model模型

22 Nov 06:17
Compare
Choose a tag to compare

如果要使用文件保存入库功能, 必须将modelClass设置为类的完全限定名称(eg: common\model\Upload), 该类必须是yii\db\ActiveRecord的子类, 且必须包含一些字段(参考@vendor\moxuandi\yii2-helpers\migrations\m190101_010101_upload.php)

综合修复与完善

15 Nov 03:05
Compare
Choose a tag to compare

1. 合并thumb, crop, frame, watermark, text, resize为一个参数process, 二维数组, 多个元素时将按顺序依次执行;

'config' => [
    'process' => [
        // 缩略图
        'thumb' => [
            'width' => 300,
            'height' => 200,
            //'mode' => 'outbound',  // 'inset'(补白), 'outbound'(裁剪, 默认值)
        ],

        // 裁剪图像
        'crop' => [
            'width' => 300,
            'height' => 200,
            //'top' => 0,
            //'left' => 0,
        ],

        // 添加边框
        'frame' => [
            'margin' => 20,
            //'color' => '666',
            //'alpha' => 100,
        ],

        // 添加图片水印
        'watermark' => [
            'watermarkImage' => '@web/uploads/watermark.png',
            //'top' => 0,
            //'left' => 0,
        ],

        // 添加文字水印
        'text' => [
            'text' => '水印文字',
            'fontFile' => '@web/uploads/simhei.ttf',  // 字体文件的位置
            /*'fontOptions' => [
                'size' => 12,
                'color' => 'fff',
                'angle' => 0,
            ],*/
            //'top' => 0,
            //'left' => 0,
        ],

        // 调整图片大小
        'resize' => [
            'width' => 300,
            'height' => 200,
            //'keepAspectRatio' => true,  // 是否保持图片纵横比
            //'allowUpscaling' => false,  // 如果原图很小, 图片是否放大
        ],
    ],
],

2. 保存文件信息入库

使用迁移命令生成数据表:

yii migrate --migrationPath=@vendor/moxuandi/yii2-helpers/migrations

Uploader上传类用法示例:

$config = [
    'maxSize' => 5*1024*1024,  // 上传大小限制, 单位B
    'saveDatabase' => true,  // 文件信息是否保存入库
];
$up = new Uploader('upfile', $config);
echo Json::encode([
    'url' => $up->fullName,
    'state' => $up->stateInfo
]);
  1. getImageInfo()方法中获取扩展名使用PHP内置函数;

  2. 删除getThumbName()方法, 因为仅是字符串替换, 没有比内置函数多什么东西;

  3. 调整图片大小: 当宽度和高度都没有定义时, 使用原图片宽高.

  4. 使用$this->fileExt = Helper::getExtension($this->realName);而不是$this->fileExt = $this->file->extension; , 因为$this->file->name的值可能是blob;

  5. 分片上传时显示分片进度;

  6. 上传状态信息, 返回状态值而不是具体的状态信息;

  7. 分片计数从1开始;

  8. 重构分片上传机制,改为写追加文件(原方法保存每个分片, 最后读取时会导致内存溢出);

  9. 修复中断上传时造成文件增大问题;

  10. self::改为$this->, 方便子类继承扩展.

  11. private改为public.

文件类型允许设置为所有

03 Aug 08:28
6d07de9
Compare
Choose a tag to compare

allowFiles参数设置为空数组或false,将不验证文件类型!

添加多种图片处理功能

03 Aug 08:23
Compare
Choose a tag to compare

裁剪图配置:

'crop' => [
    'width' => 300,  // 裁剪图的宽度
    'height' => 200,  // 裁剪图的高度
    'top' => 200,  // 裁剪图顶部的偏移, y轴起点, 默认为`0`
    'left' => 200,  // 裁剪图左侧的偏移, x轴起点, 默认为`0`
    'match' => ['image', 'crop'],  // 裁剪图路径的替换规则, 必须是两个元素的数组
],

添加边框的配置:

'frame' => [
    'margin' => 20,  // 边框的宽度, 默认为`20`
    'color' => '666',  // 边框的颜色, 十六进制颜色编码, 可以不带`#`, 默认为`666`
    'alpha' => 100,  // 边框的透明度, 可能仅`png`图片生效, 默认为`100`
    'match' => ['image', 'frame'],  // 添加边框后保存路径的替换规则, 必须是两个元素的数组
],

添加图片水印的配置:

'watermark' => [
    'watermarkImage' => '/uploads/watermark.png',  // 水印图片的绝对路径
    'top' => 100,  // 水印图片的顶部距离原图顶部的偏移, y轴起点, 默认为`0`
    'left' => 200,  // 水印图片的左侧距离原图左侧的偏移, x轴起点, 默认为`0`
    'match' => ['image', 'watermark'],  // 添加图片水印后保存路径的替换规则, 必须是两个元素的数组
],

添加文字水印的配置:

'text' => [
    'text' => 'TONGMENGCMS',  // 水印文字的内容
    'fontFile' => '@yii/captcha/SpicyRice.ttf',  // 字体文件, 可以是绝对路径或别名
    'top' => 100,  // 水印文字距离原图顶部的偏移, y轴起点, 默认为`0`
    'left' => 200,  // 水印文字距离原图左侧的偏移, x轴起点, 默认为`0`
    'fontOptions' => [  // 字体属性
        'size' => 12,  // 字体的大小, 单位像素(`px`), 默认为`12`
        'color' => 'fff',  // 字体的颜色, 十六进制颜色编码, 可以不带`#`, 默认为`fff`
        'angle' => 0,  // 写入文本的角度, 默认为`0`
    ],
    'match' => ['image', 'text'],  // 添加文字水印后保存路径的替换规则, 必须是两个元素的数组
],

调整图片大小的配置:

'resize' => [
    'width' => 300,  // 图片调整后的宽度
    'height' => 200,  // 图片调整后的高度
    'keepAspectRatio' => true,  // 是否保持图片纵横比, 默认为`true`
    'allowUpscaling' => false,  // 如果原图很小, 图片是否放大, 默认为`false`
    'match' => ['image', 'resize'],  // 调整图片大小后保存路径的替换规则, 必须是两个元素的数组
],

重置处理缩略图配置

03 Aug 08:22
0177ef9
Compare
Choose a tag to compare

缩略图配置改为:

$config = [
    //'thumb' => false,  // 不生成缩略图
    'thumb' => [  // 缩略图配置
        'width' => 300,  // 缩略图宽度
        'height' => 200, // 缩略图高度
        'mode' => 'outbound',  // 生成缩略图的模式, 可用值: 'inset'(补白), 'outbound'(裁剪, 默认值)
        'match' => ['image', 'thumb'],  // 缩略图路径的替换规则, 必须是两个元素的数组
    ]
];

添加thumbMatch参数

28 Mar 03:22
Compare
Choose a tag to compare
  1. 添加thumbMatch参数:缩略图路径的替换规则, 必须是两个元素的数组, 默认为: ['image', 'thumb']. 注意, 当两个元素的值相同时, 将不会保存原图, 而仅保留缩略图.
  2. 修改函数名Helper::getThumb()Helper::getThumbName()

基于Yii2.0.16重写扩展

08 Feb 15:09
431dc80
Compare
Choose a tag to compare
v2.0.0

Update Uploader.php