当文件名包含特殊字符时,下载文件可能会遇到问题
encodeURIComponent()
函数进行URL编码。const fileName = "example[1].txt";
const encodedFileName = encodeURIComponent(fileName);
const fileUrl = "https://example.com/files/" + encodedFileName;
<a>
标签下载文件时,可以将文件名用引号括起来:<a href="https://example.com/files/example[1].txt" download="example[1].txt">Download</a>
[
和]
替换为(
和)
。这样可以避免许多兼容性问题。但是,请确保替换后的文件名仍然具有描述性。const fileName = "example[1].txt";
const sanitizedFileName = fileName.replace(/[{}$$$$]/g, '_');
const fileUrl = "https://example.com/files/" + sanitizedFileName;
fetch("https://example.com/files/example[1].txt")
.then(response => response.blob())
.then(blob => {
const url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
a.download = "example[1].txt";
a.click();
URL.revokeObjectURL(url);
});
请注意,这些方法可能不适用于所有情况。在实际应用中,可能需要根据具体需求进行调整。
领取专属 10元无门槛券
手把手带您无忧上云