拆分多个附件的一种方法

问答  收藏
1 / 274

场景:同一条记录的附件字段包含多个附件,现在想拆分到多条记录中
原始数据:
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}

保存代码块之前,先点测试,输入以下数据点确定,待有输出结果后再保存。
["https://doc.mingdao.com/2ae9de62-82b7-4cc2-a03b-38655d87b328/a1b83b89-0f6c-4eea-b43f-2d68fb82691d/686cd70db2756de5e41719b6/20250708/4Xax421xaKcoaqcreXcO9n3V497l3IaB7Z6B5VeYd3ai1x647F2idP1t5K7m8QaI.txt?attname\u003d%e5%ad%97%e6%ae%b5%e6%8e%a7%e4%bb%b6%e7%b1%bb%e5%9e%8b%e5%af%b9%e7%85%a7%e8%a1%a8.txt\u0026e\u003d1751967586\u0026token\u003dPGtAPYyCYxCQ1zckbL-ecATOk42z8P3jdPahEnzt:rJT8LiSJTl51RYsZBDOCxttJSYk\u003d","https://doc.mingdao.com/2ae9de62-82b7-4cc2-a03b-38655d87b328/a1b83b89-0f6c-4eea-b43f-2d68fb82691d/686cd70db2756de5e41719b6/20250708/6a8B95fS2r479a4Wf31qbWaYegaLcJ0Jf62F9b1z6X927fau8N265f0c5E0Hec6w.docx?attname\u003d%e6%98%8e%e9%81%93%e4%ba%912W%2b%e7%94%a8%e6%88%b7%e9%9b%86%e7%be%a4%e6%a8%a1%e5%bc%8f%e5%8f%8a%e5%9b%bd%e4%ba%a7%e5%8c%96%e9%80%82%e9%85%8d%e6%8e%a8%e8%8d%90-20241213.docx\u0026e\u003d1751967586\u0026token\u003dPGtAPYyCYxCQ1zckbL-ecATOk42z8P3jdPahEnzt:5gikgImtL5zP2Yocw1YOB16FqFU\u003d","https://doc.mingdao.com/2ae9de62-82b7-4cc2-a03b-38655d87b328/a1b83b89-0f6c-4eea-b43f-2d68fb82691d/686cd70db2756de5e41719b6/20250708/7A1b3a7h1M7A8P1h5ffXadbT1q289Nco6VcRa02W9n856Z5R4W3s4P7580fm7xf4.pdf?attname\u003de-cert.pdf\u0026e\u003d1751967586\u0026token\u003dPGtAPYyCYxCQ1zckbL-ecATOk42z8P3jdPahEnzt:cV_HpUcWZ20FUWS5HmhVHF9DFBI\u003d","https://p1.mingdaoyun.cn/2ae9de62-82b7-4cc2-a03b-38655d87b328/a1b83b89-0f6c-4eea-b43f-2d68fb82691d/686cd70db2756de5e41719b6/20250708/0x0x888Kaw4fc13v5UdybZ4Ec2dIeAdjeS3XcG5V3t4VaZ176fec2odP8H1M394x.jpg?attname\u003dPMP.jpg\u0026e\u003d1751967586\u0026token\u003dPGtAPYyCYxCQ1zckbL-ecATOk42z8P3jdPahEnzt:hvPgOpHKxB63BegO4fGnMrdNTyI\u003d"]

image.png
image.png