我有一个从Blender生成的FBX文件,我正在尝试使用zip压缩该文件以供在使用三个JS在AR环境中渲染图像的应用程序中使用以在Webapp中使用。现在,我正尝试使用javascript上传它,但是结果数据总是被几个字节破坏,使其完全无用。我在MacOS 10.13.6上使用HexFiend检查文件。
该文件是Blender中的1x1x1多维数据集,已使用7.3 FBX Binary协议导出。然后将其从Vue.js客户端加载到Laravel / Php 7.0.31后端。暂时不要介意缩进-这是我最近的尝试。
var decoder = new TextDecoder('utf-8');
var reader = new FileReader();
reader.onload = (e) => {
let asset = {};
var result = new Uint8Array(e.target.result);
var array = decoder.decode(result);
asset.data = array;
asset.filename = file.name;
asset.size = file.size;
asset.mime = file.type != '' ? file.type : "application/octet-stream";
console.log(asset.data);
//save it to an object that is then posted to the php side.
}
reader.readAsArrayBuffer(file);
文件已生成,但始终会丢失一些,导致它们损坏并变得完全无用。我需要保持文件的二进制文件尽可能纯净。我怀疑utf-8编码会通过转换几个字符来破坏它。
到目前为止,我已经尝试了以下方法:
到目前为止,我所看到的唯一重要变化是在readAsBinaryString和上述解决方案之间。但是两者都不正确。