gpt4 book ai didi

javascript - 使用 Javascript XMLHttpRequest 时,来自服务器的二进制数据缺少字节

转载 作者:行者123 更新时间:2023-11-30 00:03:48 24 4
gpt4 key购买 nike

我已经为此工作好几天了,但无济于事 :( 非常感谢任何帮助。

我正在尝试使用以下方法将文件下载为类型化数组:

var oReq = new XMLHttpRequest();
oReq.open("GET", "/myfile.png", true); //This is the path to my file
oReq.responseType = "arraybuffer";

oReq.onload = function (oEvent) {
var arrayBuffer = oReq.response;
var array = new Uint8Array(arrayBuffer ); //This is the array I retrieve from my file
};

oReq.send(null);

当我对所有 Assets 都在我的计算机硬盘驱动器上执行此操作时,它运行完美,我会收到如下所示的响应(这只是示例数据):

array[0] = 10;
array[1] = 15;
array[2] = 20;
array[3] = 17;
array[4] = 18;
array[5] = 23;
array[6] = 25;
array[7] = 12;
array[8] = 2;
array[9] = 10;
...

然而,当我将所有内容上传到服务器时,我得到的结果如下所示:

array[0] = 10;
array[1] = 15;
array[2] = 20;
array[3] = 17;
array[4] = 18;
array[5] = 25; //This number is missing from above, it should be 23
array[6] = 12;
array[7] = 2;
array[8] = 10;
array[9] = 18;
...

我已尽我所能解决此问题。清除缓存,打开和关闭 gzip,用不同的设备测试它(即在手机和电脑上加载它),但到目前为止没有任何帮助。

令我感到奇怪的是,相同的数字每次都是错误的。所以我认为他们不会在网络上“迷路”。此外,当我使用不同的服务器对其进行测试时,我会得到不同的数字。所以似乎每个服务器都会丢弃一组不同的数字。

有谁知道这是为什么,您能否引导我找到帮助解决问题的方向?非常感谢!

最佳答案

我想通了...哇,这是一次有趣的经历。

事实证明,我使用的 FTP 客户端 (FileZilla) 有一个设置,可以自动尝试检测文件数据类型并对其进行必要的调整,以便在所有操作系统系统中正确显示。

这是一个记录在案的行为,可以在这里阅读: https://wiki.filezilla-project.org/Data_Type

当我关闭此行为(在“传输”-“传输类型”选项卡下将其从自动切换为二进制)时,一切都按预期再次运行。

非常感谢 Jaromanda X 的乐于助人。他的回答让我了解了如何使用这些设置。我希望这能帮助将来遇到同样问题的其他人!

关于javascript - 使用 Javascript XMLHttpRequest 时,来自服务器的二进制数据缺少字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39282211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com