我使用FileSaver.js保存一个包含一些二进制数据的blob。我像这样从ArrayBuffer构造blob:
saveAs(new Blob([arr], {type: "application/octet-stream"}), '_test.data');现在的问题是结果文件全为零。当我打印ArrayBuffer的内容时,字节是正常的,它不是一个“全零”数组。显然,blob的构造在某种程度上肯定是错误的。但根据文档,这应该是完成此操作的方法。也就是说,它应该能够接受ArrayBuffer,它应该被打包在另一个数组中(因此是方括号),八位组流类型应该代表二进制数据。那么我错过了什么呢?
谢谢
发布于 2019-05-29 16:46:09
我不知道您是如何创建二进制数组的,因为它在这里工作。您可以与以下代码进行比较,也可以提供您的代码,以便我们检查
<!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>
https://stackoverflow.com/questions/56356146
复制相似问题