使用FileSaver.js保存Blob

时间:2019-05-29 08:26:11

标签: javascript filesaver.js

我使用FileSaver.js保存包含一些二进制数据的Blob。我是这样从ArrayBuffer构造blob的:

saveAs(new Blob([arr], {type: "application/octet-stream"}), '_test.data');

现在的问题是结果文件全为零。当我打印ArrayBuffer的内容时,字节就可以了,它不是“全零”数组。显然,blob的构造在某种程度上一定是错误的。但是根据文档,这应该是这样做的方法。也就是说,它应该能够接受ArrayBuffer,它应该包装在另一个数组中(因此在方括号中),并且八位字节流类型应表示二进制数据。那我想念什么?

谢谢

1 个答案:

答案 0 :(得分:1)

我不知道您如何创建二进制数组,因为它在这里工作。您可以与以下代码进行比较,或者提供您的代码,以便我们进行检查

<!DOCTYPE html>
<html>
<title>Web Page Design</title>

<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/FileSaver.js/1.3.8/FileSaver.min.js">
  </script>
  <script>
    document.write("Hello, Coding Ground!");
    var str = "Hello";
    var bytes = []; // char codes
    for (var i = 0; i < str.length; ++i) {
      var code = str.charCodeAt(i);
      bytes = bytes.concat([code]);

    }
    var blob = new Blob(bytes, {
      type: "application/octet-stream"
    });
    saveAs(blob, "_data.data");
  </script>
</head>

<body>
</body>

</html>

相关问题