【发布时间】:2018-09-26 13:18:36
【问题描述】:
我收到了一个小型浏览器应用程序,它获取一个二进制文件,解压缩它,然后在浏览器中显示它的内容。
但是,我无法将数据正确转换为字节数组,随后膨胀失败并出现“无效的代码长度设置”。
这是我的get方法:
$.get("metafile.hsm", function (metaFile) {
readCellFile(metaFile);
});
这是膨胀文件的方法:
function readCellFile(file) {
var reader = new FileReader();
// var file = document.getElementById('cell_file_input').files[0];
reader.onload = function() {
var compressedData = new Uint8Array(reader.result);
var data = pako.inflate(compressedData); // Error "Invalid code length set"
var buf = new flatbuffers.ByteBuffer(data);
var cell = hdm.storage.hsg.Cell.getRootAsCell(buf);
var features = parseCell(cell);
// ...
}
reader.onerror = function(event) {
console.error("File could not be read! Code " + event.target.error.code);
};
var blob = new Blob([file], {type: "application/octet-stream"});
reader.readAsArrayBuffer(blob);
}
我做错了吗?我可以排除文件已损坏,正如您在注释掉的行中看到的那样,我正在测试上传文件并且它有效。
【问题讨论】: