📜  从内容处置标头 js 中提取文件名 - Javascript (1)

📅  最后修改于: 2023-12-03 15:06:33.808000             🧑  作者: Mango

从内容处置标头 js 中提取文件名 - Javascript

当我们从HTTP请求中获取响应时,很有可能我们需要从响应的头部中提取出文件名信息。在Javascript中,有多种方式可以从响应头中获取文件名,本文将介绍其中一种简单快捷的方法。

方法一:使用字符串操作方法来获取文件名

我们可以使用字符串操作方法来获取文件名。 我们可以通过JavaScript的substring方法从Content-Disposition标头字符串中切割文件名。下面是如何实现的:

function extractFilenameFromHeader(header) {
  if (!header) return null;
  
  var result = header.match(/.*filename=\"?([^;\"]+)\"?.*/);

  if (result && result[1]) {
    return result[1];
  }

  return null;
}

var filename = extractFilenameFromHeader("attachment; filename=\"test.txt\"");
console.log(filename);

这将返回"test.txt"。我们可以轻松地将其应用于ajax调用或HTTP响应并获得文件名。

方法二:使用Content-Disposition响应标头

Content-Disposition标头是HTTP响应头的一部分,用于描述响应正文的处理方式。它通常用于指定将响应的正文作为附件下载。例如:

Content-Disposition: attachment; filename=filename.txt

我们可以使用以下代码来提取文件名:

function extractFilenameFromHeader(header) {
  if (!header) return null;
  
  var disposition = header.split(';')[1];

  if (disposition && disposition.indexOf('filename=') !== -1) {
    var filename = disposition.split('=')[1].trim();
    filename = filename.replace(/"/g, '');
    return filename;
  }

  return null;
}

var filename = extractFilenameFromHeader("attachment; filename=\"test.txt\"");
console.log(filename);

这将返回"test.txt"。

结论

在JavaScript中提取文件名的方法可能有很多,但上述两种方法是最简单和最常见的。我们可以根据需要选择其中一种方法,并将其用于ajax调用或HTTP响应来获取文件名。