繁体   English   中英

JavaScript Bencode二进制长度

[英]JavaScript bencode binary length

我正在尝试使用JavaScript解码torrent文件,但长度不好。

path = "file.torrent";
$.ajax({
    url: path,
    success: function (data) {
        console.log(data.length);
    }
});

我在PHP中做过同样的事情,但长度有所不同。

$f=file_get_contents($filename, FILE_BINARY);
var_dump(strlen($f));

我认为ajax方法不会返回二进制文件。

如何在JavaScript中获得与file_get_contents($ filename,FILE_BINARY)类似的东西?

您可以将processData开关设置为false:

$.ajax({
    url: path,
    processData: false,
    success: function (data) {
        console.log(data.length);
    }
});

现在,jQuery将不再尝试变得智能,并根据服务器返回的Content-Type响应标头自动解析数据,但是它将原始数据传递给成功回调。 显然,使用javascript处理二进制数据并不是为此语言设计的。 有了HTML5,尽管有一些不错的添加。

另外值得一提的是,对从服务器接收到的某些二进制数据调用.length可能没有多大意义,并且由于未定义此属性,因此很可能会出现JavaScript错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM