Power Automate如何用单个函数提取两种格式Content-Disposition的文件名?
兼容两种Content-Disposition格式的文件名提取方案
可以用Power Automate的表达式组合实现单个函数兼容两种格式,无需额外流程步骤:
if( contains(outputs('HTTP')['headers']?['Content-Disposition'], 'filename*='), uriComponentToString( split( split(outputs('HTTP')['headers']?['Content-Disposition'], 'filename*=UTF-8''')[1], ';' )[0] ), split(outputs('HTTP')['headers']?['Content-Disposition'], '"')[1] )
逻辑说明:
- 格式判断:通过
contains函数检测响应头是否包含filename*=,以此区分两种Content-Disposition格式 - UTF-8编码格式处理:
- 先用
split(..., 'filename*=UTF-8''')拆分出URL编码后的文件名片段 - 再用
split(..., ';')截断后续可能存在的响应头参数 - 最后通过
uriComponentToString解码URL编码字符(如%C3%89还原为É)
- 先用
- 常规格式处理:沿用原有的双引号拆分逻辑,直接提取文件名
内容的提问来源于stack exchange,提问作者Bijan
相关产品推荐
相关产品推荐

