gpt4 book ai didi

javascript - 如何从内容类型获取 MIME 类型

转载 作者:行者123 更新时间:2023-11-29 10:55:33 25 4
gpt4 key购买 nike

问题是 axios 调用返回文件。有时是 xlsx,有时是纯 txt。

在 javascript 中,一旦我得到它们,我就会强制通过 blob 下载它。

像这样:

var headers = response.headers;
var blob = new Blob([response.data], {
type: headers['content-type']
});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = "report.xlsx";
link.click();

如您所见,我得到了类似这样的内容:link.download = "report.xlsx"。我想要的是将 xlsx 替换为动态 mime 类型,这样有时它是 report.txt 有时它是 report.xlsx

我如何从内容类型做到这一点?

最佳答案

您可以使用标题的内容类型来获取文件扩展名。
使用这个 Javascript 库 - node-mime

您只需传递您的headers['content-type'],它会为您提供您需要为下载名称设置的文件扩展名。

var ctype = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";

console.log(mime.getExtension(ctype));
<script src="https://wzrd.in/standalone/mime@latest"></script>

示例:在您的情况下,

var headers = response.headers;
var blob = new Blob([response.data], {
type: headers['content-type']
});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = "report." + mime.getExtension(headers['content-type']);
link.click();

Incomplete list of MIME types来自 Mozilla 开发人员。

关于javascript - 如何从内容类型获取 MIME 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58275507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com