附件根据字段内容重命名

分享  收藏
1 / 169

第一步:通过 js 代码获取到文件 url 链接及原本的文件名后缀
5b773adc18676ac2026145f3ad29d9e.png

代码:
var list= JSON.parse(input.imgs?input.imgs:"[]");
var imgurl=(list.length>0?list[0]:"")
var backgroundImageRegex=/(?<=attname=).+(?=&e)/;
var name=decodeURI(imgurl.match(backgroundImageRegex));
var filename = name;

//使用 split 方法分割字符串,取最后一个子串为文件后缀
var suffix = "." + filename.split(".").pop();

第二步:添加代码块将 url 转为 base64 格式
6582ef3094cfac6912461e30367a3fd.png

代码:
/ / 读取文件 URL 转 Base64
const fetch=require('node-fetch')
const url = input.url

const data = await fetch(url).then(r => r.buffer()).then(buf => buf.toString('base64'))

output={ base64: data }

第三步:因为只有通过 API 写入文件时,才能对文件名称重命名,所以通过发送 API 请求节点,使用应用 API 开发文档中对应工作表的【更新行记录】接口来更新附件字段

eee60af32f2e4fee89b1e4876acfea9.png

代码:
{
"appKey": "",
"sign": "",
"worksheetId": "工作表 id",
"rowId": "记录 id",
"controls": [

{
  "controlId": "附件字段id",
  "value": "https://www.mingdao.com/1.jpg,https://www.mingdao.com/2.jpg,https://www.mingdao.com/3.txt",
  "editType": "0",
  "valueType": "2",
  "controlFiles": [
    {
      "baseFile": "第二步base64文本",
      "fileName": "重命名文本+第一步的文件后缀"
    }
  ]
}

],
"triggerWorkflow": true
}

具体参数可查阅 API 文档对应接口:

26b4edd1319f619563426f0120f0926.png