📅  最后修改于: 2023-12-03 15:06:33.808000             🧑  作者: Mango
当我们从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标头是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响应来获取文件名。