自定义 Blob 文件名以在 JavaScript 中直接下载
简介
使用 window.location 时要在 JavaScript 中强制下载 blob 文件,会自动生成下载的文件的名称。要自定义此文件名,需要执行其他步骤。
使用 FileSaver.js 技巧的解决方案
一种解决方法涉及利用类似于 FileSaver.js 所采用的技术:
简化示例
function saveData(data, fileName) { var json = JSON.stringify(data), blob = new Blob([json], {type: "octet/stream"}), url = window.URL.createObjectURL(blob); var a = document.createElement("a"); document.body.appendChild(a); a.style = "display: none"; a.href = url; a.download = fileName; a.click(); window.URL.revokeObjectURL(url); } var data = { x: 42, s: "hello, world", d: new Date() }, fileName = "my-download.json"; saveData(data, fileName);
FileSaver.js 的使用
虽然上面的方法可以工作中,建议使用更强大的 FileSaver.js 库进行文件保存JavaScript:
import { saveAs } from 'file-saver'; var json = JSON.stringify(data), filename = "my-download.json"; var blob = new Blob([json], {type: "octet/stream"}); saveAs(blob, filename);
注意事项
以上是在 JavaScript 中直接下载时如何自定义 Blob 文件名?的详细内容。更多信息请关注PHP中文网其他相关文章!