JS 通过Content-Disposition 信息截取 filename 数据

17 min read

在 JavaScript 中,可以通过 header 属性中的 Content-Disposition 信息来截取 filename 数据。下面是一个获取 filename 的示例代码:

function getFilenameFromHeader(header) {
  const regex = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/;
  const matches = regex.exec(header);
  let filename = '';

  if (matches != null && matches[1]) {
    filename = matches[1].replace(/['"]/g, '');
  }

  return filename;
}

const header = 'attachment; filename="example.txt"';
const filename = getFilenameFromHeader(header);
console.log(filename); // 输出:example.txt

在上面的代码中,getFilenameFromHeader 函数使用正则表达式来匹配 filename 的值。然后,将匹配到的值去除引号,最后返回结果。在这个示例中,输入的 header'attachment; filename="example.txt"',最终输出的 filename'example.txt'