• 单图片上传
    • addImage('name值', '标题' [, '提示', '默认值', '限制大小', '文件后缀', '额外css类', '缩略图参数', '水印参数'])" level="2">addImage('name值', '标题' [, '提示', '默认值', '限制大小', '文件后缀', '额外css类', '缩略图参数', '水印参数'])
      • 自定义js回调" level="3">自定义js回调
      • 自定义生成缩略图" level="3">自定义生成缩略图
      • 自定义水印" level="3">自定义水印

    单图片上传

    addImage('name值', '标题' [, '提示', '默认值', '限制大小', '文件后缀', '额外css类', '缩略图参数', '水印参数'])" class="reference-link">addImage('name值', '标题' [, '提示', '默认值', '限制大小', '文件后缀', '额外css类', '缩略图参数', '水印参数'])

    版本新增功能
    1.0.5自定义js回调函数
    1.2.0自定义生成缩略图,自定义水印

    标识符:image

    参数含义类型
    namename值string
    title标题string
    tips提示string
    default默认值string
    size限制大小(单位kb)string
    ext文件后缀(如:'jpg,png,gif')string
    extra_class额外css类string
    thumb缩略图参数(1.2.0+)string/array
    watermark水印参数(1.2.0+)string/array

    单图片上传的用法和单文件上传是一样的,具体信息请参考单文件上传

    上传后,保存的是图片附件id,如果在前台页面使用时,需要获取该图片路径,请使用get_file_path(附件id),如:单图片上传 - 图1,或者单图片上传 - 图2

    自定义js回调" class="reference-link">自定义js回调

    从1.0.5版本开始,可通过自定义js回调函数来处理上传成功之后,或者上传失败之后需要做的事情,比如:

    1. return ZBuilder::make('form')
    2. ->addImage('pic', '图片')
    3. ->js('test') // 引入自定义的外部js文件
    4. ->fetch();

    然后在test.js中定义

    1. var dp_image_upload_success = function () {
    2. console.log(1111)
    3. };

    那么在图片上传成功后,会执行dp_image_upload_success函数,在控制台输出1111.当然了,你也可以利用jQuery给表单添加个按钮,或者显示隐藏某些元素,这个按自己实际需求做就可以了。

    dp_image_upload_success函数是针对表单中的所有图片上传组件,包括单图片上传,多图片上传,也就是说,不管你的表单中添加了多少个图片上传组件,每次上传成功,都会去执行dp_image_upload_success函数。

    如果只想某个图片上传组件上传成功时才触发dp_image_upload_success函数,可以这么做。

    1. return ZBuilder::make('form')
    2. ->addImage('pic1', '图片1')
    3. ->addImage('pic2', '图片2')
    4. ->js('test') // 引入自定义的外部js文件
    5. ->fetch();

    test.js代码如下:

    1. var dp_image_upload_success_pic2 = function () {
    2. console.log(1111)
    3. };

    这样的话,只有当pic2这个组件上传图片成功后才会触发dp_image_upload_success_pic2函数。而当pic1组件上传图片成功后,是不会触发dp_image_upload_success_pic2函数的。

    除了dp_image_upload_success函数外,还支持以下回调函数。

    全局函数含义
    dpimage_upload_success图片上传成功后执行,针对所有图片上传组件
    dp_image_upload_success表单项名仅对某个图片上传组件上传成功后起作用
    dpimage_upload_error图片上传失败后执行,针对所有图片上传组件
    dp_image_upload_error表单项名仅对某个图片上传组件上传失败后起作用
    dpimage_upload_complete图片上传完成后执行,针对所有图片上传组件
    dp_image_upload_complete表单项名仅对某个图片上传组件上传完成后起作用

    自定义生成缩略图" class="reference-link">自定义生成缩略图

    此参数需要1.2.0或以上版本支持。

    生成30x30的缩略图

    如果需要生成30x30的缩略图,那么size参数要写成30,30(用逗号隔开)

    1. return ZBuilder::make('form')
    2. ->addImage('pic', '图片', '', '', '', '', '', ['size' => '30,30'])
    3. ->fetch();

    或者

    1. return ZBuilder::make('form')
    2. ->addFormItems([
    3. ['image', 'pic', '图片', '', '', '', '', '', ['size' => '30,30']]
    4. ])
    5. ->fetch();

    设置缩略图裁剪类型

    默认情况下,缩略图的裁剪方式是“等比例缩放”,如果需要设置其他类型,可以这样写

    1. return ZBuilder::make('form')
    2. ->addImage('pic', '图片', '', '', '', '', '', ['size' => '30,30', 'type' => 2])
    3. ->fetch();

    type参数可以设置以下几种,默认为1,即等比例缩放。

    参数含义
    1等比例缩放
    2缩放后填充
    3居中裁剪
    4左上角裁剪
    5右下角裁剪
    6固定尺寸缩放

    关闭缩略图功能

    默认情况下,如果没有设置缩略图参数,那么是否生成缩略图由【系统】【系统设置】【上传】中的配置决定。

    单图片上传 - 图3

    如果在表单项参数中设置了缩略图参数,则以表单项的缩略图参数为优先。

    如果在系统设置中设置了缩略图参数,但在某些情况下,想临时不生成缩略图,则可以将缩略图参数设置为字符串'close'。

    1. return ZBuilder::make('form')
    2. ->addImage('pic', '图片', '', '', '', '', '', 'close')
    3. ->fetch();

    自定义水印" class="reference-link">自定义水印

    此参数需要1.2.0或以上版本支持。

    设置参数的img为附件id,即水印图片的附件id,如果附件不存在,则不会添加水印。

    1. return ZBuilder::make('form')
    2. ->addImage('pic', '图片', '', '', '', '', '', '', ['img' => 10])
    3. ->fetch();

    设置水印的位置

    1. return ZBuilder::make('form')
    2. ->addImage('pic', '图片', '', '', '', '', '', '', ['img' => 10, 'pos' => 1])
    3. ->fetch();

    水印位置有以下几个参数,默认为9,即右下角。

    参数含义
    1左上角
    2上居中
    3右上角
    4左居中
    5居中
    6右居中
    7左下角
    8下居中
    9右下角

    设置水印透明度

    1. return ZBuilder::make('form')
    2. ->addImage('pic', '图片', '', '', '', '', '', '', ['img' => 10, 'pos' => 1, 'alpha' => 90])
    3. ->fetch();

    透明度取值范围是0~100,数字越小,透明度越高。

    不添加水印

    默认情况下,如果没有设置水印参数,那么是否添加水印由【系统】【系统设置】【上传】中的配置决定。

    单图片上传 - 图4

    如果在表单项参数中设置了水印图参数,则以表单项的水印参数为优先。

    如果在系统设置中设置了打开了水印功能,但在某些情况下,想临时不添加水印,则可以将水印参数设置为字符串'close'。

    1. return ZBuilder::make('form')
    2. ->addImage('pic', '图片', '', '', '', '', '', '', 'close')
    3. ->fetch();