拆分多个附件的一种方法

问答  收藏
1 / 128

场景:同一条记录的附件字段包含多个附件,现在想拆分到多条记录中
原始数据:
1.png

拆分后:
image.png

实现原理:通过代码块处理附件数组,将多个附件拆解成单独可下载的 url,并且转码附件名,形成数组

实现过程:
image.png

image.png

image.png

image.png

image.png

附上代码块

//将附件地址转换为JSON数组
var filelist=JSON.parse(input.filelist?input.filelist:'[]');

var result = [];

for (var i = 0; i < filelist.length; i++) {
  var fileurl = filelist[i];
  var url = new URL(fileurl);
  var params = new URLSearchParams(url.search);
  
  // 正则提取 attname 参数(不转码)
  var match = fileurl.match(/(?<=attname=).+?(?=&e)/);
  var filename = "";

  if (match) {
    var fullFilename = decodeURIComponent(match[0]); // 只转码 filename
    filename = fullFilename.replace(/\.[^/.]+$/, ""); // 去除扩展名
  }

  result.push({
    filename: filename,
    fileurl: fileurl  // 保留原始 URL,不修改其中的编码
  });
}

//全部输出,按需选择
output={"result":result}