1

Web アプリケーションの 1 つでフラットバッファを使用しようとしています。次のphpコードを使用して、これらのバッファデータを1つのファイル(buffer_content.txt)に保存しました。

// ...Code to store to disk or send over a network goes here...
$file = 'buffer_content.txt';
$output = serialize($builder->dataBuffer());

$fp = fopen($file, "w");
fwrite($fp, $output);
fclose($fp);

ajax を使用して、サーバーからバッファ データを取得できます。次に、JavaScript でそのバッファーから元のデータを抽出する必要があります。しかし、私はそれを行う方法を理解することができません。

これを行う方法はありますか?

4

2 に答える 2

1

を使用したくありませんserialize。dataBuffer には既にシリアル化されたデータが含まれています。ここに記載されている内容を確認してください: https://google.github.io/flatbuffers/flatbuffers_guide_tutorial.html

$buf = $builder->dataBuffer(); // タイプのGoogle\FlatBuffers\ByteBuffer

// この ByteBuffer のデータは 0 ではなく、buf->getPosition() から始まります。

// データの終わりは buf->capacity() によってマークされるため、サイズは

// buf->capacity() - buf->getPosition()。

必ずバイナリ モードでファイルを書き込んでください ( に渡します"wb") fopen。また、テキスト形式ではないため、.txt と呼ばないでください :)

次に、JS でファイルを読み込み (ここでも、テキストではなくバイナリ モードで)、Uint8Array最終的に .

于 2016-08-21T16:55:54.830 に答える