获取附件url,下载附件原创
金蝶云社区-吴锐雄
吴锐雄
8人赞赏了该文章 9,496次浏览 未经作者许可,禁止转载编辑于2021年10月08日 18:13:08


使用附件帮助类AttachmentServiceHelper获取附件的url


1.创建单据页面并新增一条单据、上传三个附件

image.png


选择附件控件,打开图片显示缩略图

image.png


添加三个附件:

Image_20211008181114.png


2.创建动态表单,放置一个按钮,注册插件

image.png


3.编写插件代码,获取附件url

以下代码的思路是:

获取单据标识为kdec_textile_bill的字段id数据,取第一条单据的附件信息。

使用  AttachmentServiceHelper.getAttachments(),三个参数分别是 单据标识、单据id、单据附件控件标识

import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.datamodel.events.BizDataEventArgs;
import kd.bos.entity.datamodel.events.GetEntityTypeEventArgs;
import kd.bos.form.events.PreOpenFormEventArgs;
import kd.bos.form.plugin.AbstractFormPlugin;
import kd.bos.servicehelper.AttachmentServiceHelper;
import kd.bos.servicehelper.QueryServiceHelper;

import java.util.*;

public class DemoTestPlugin extends AbstractFormPlugin {


    @Override
    public void registerListener(EventObject e) {
        super.registerListener(e);
        addClickListeners("kdec_buttonap");
    }

    @Override
    public void click(EventObject evt) {
        super.click(evt);


        // 查询单据kdec_textile_bill的id字段
        DynamicObjectCollection collection = QueryServiceHelper.query("kdec_textile_bill", "id", null);
        // 获取首行的id,注意:这里只做展示,没有做异常校验,如果单据一行数据都没有,会报异常
        Long id = (Long) collection.get(0).get("id");
        List<Map<String, Object>> list = AttachmentServiceHelper.getAttachments("kdec_textile_bill", id, "attachmentpanel");
        for (Map map : list) {
            String url = map.get("url").toString();
            System.out.println(url);
        }

    }


}


查看单据kdec_textile_bill里面的附件控件标识:

image.png


4.效果

后台打印了上传的三条url

image.png


复制一条附件的url,粘贴到浏览器,点击“确定”查看图片:

image.png

Image_20211008181211.png



图标赞 8
8人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!