首页 > web前端 > js教程 > 在 JavaScript 中下载 Blob 时如何控制文件名?

在 JavaScript 中下载 Blob 时如何控制文件名?

DDD
发布: 2024-12-09 12:23:14
原创
760 人浏览过

How Can I Control the Filename When Downloading Blobs in JavaScript?

JavaScript 中 Blob 下载的自定义文件名

通过 window.location 强制下载 Blob 文件时,指定的文件名可以是随机字符串。要自定义此文件名,需要采用涉及隐藏元素的解决方法。

实现

FileSaver.js 提供了一种方法,其中涉及:

  1. 创建隐藏的
  2. 将其 href 属性设置为 Blob 的 URL。
  3. 将其下载属性设置为所需的文件名。
  4. 单击

示例

以下简化示例说明了该技术:

var saveData = (function () {
  var a = document.createElement("a");
  document.body.appendChild(a);
  a.style = "display: none";
  return function (data, fileName) {
    var json = JSON.stringify(data),
      blob = new Blob([json], { type: "octet/stream" }),
      url = window.URL.createObjectURL(blob);
    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);
登录后复制

注释

  • 旧版浏览器可能不支持下载属性。
  • 某些文件格式可能被认为不安全并触发下载失败。建议使用 .txt 扩展名保存 JSON 文件。

以上是在 JavaScript 中下载 Blob 时如何控制文件名?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板