2

JavaScriptでトレントファイルをデコードしようとしていますが、長さが適切ではありません。

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)に似たものを取得するにはどうすればよいですか?

4

1 に答える 1

0

processDataスイッチを false に設定できます。

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

jQuery は、サーバーから返された Content-Type 応答ヘッダーに基づいてインテリジェントにデータを自動的に解析しようとはしませんが、それを生データとして成功コールバックに渡します。明らかに、javascript でバイナリ データを処理することは、この言語が設計されたものではありません。ただし、HTML5 にはいくつかの優れた機能が追加されています。

また、サーバーから受信した一部のバイナリ データを呼び出すこと.lengthはあまり意味がない可能性があり、このプロパティが定義されていないため、javascript エラーが発生する可能性があることに注意してください。

于 2012-12-23T16:33:45.080 に答える