現在、私は1GBのサイズの大きなJSONファイルダウンロードリンクを持っています。私ができることは、アンドロイドアプリを使用してダウンロードし、gsonを通してストリーミングするjsonのコンテンツを解析することです。サーバー側でJSONを分割し、クライアント側で結合してストリームする方法
しかし、1GBの大きなファイルをダウンロードしようとすると問題が発生しました。
- ダウンロード途中でユーザーのインターネットが壊れた場合はどうなりますか?
- ユーザーのデバイスの容量が不足している場合はどうなりますか?
上記のシナリオに基づいて、ダウンロードは最初から再開されます。
これを修正するために、私はJSONを部分に分解する可能な解決策を考えました。だから、アプリがすでにダウンロードされているかどうかを確認することができます。それはアプリが最後にダウンロードした部分からダウンロードを再開し、データと時間を節約することを意味します。
私の質問は、どうすれば大きなjsonファイルを分割できますか?それはちょうど非常に大きなjsonファイルで何も特別なものではありません。私は、JSONファイルを分割して作成することができるよ場合、
$file = $target_dir.'/json.json';
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 540');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}
さらに:
$fp = fopen($target_dir.'/json.json', 'w');
fwrite($fp,json_encode(array('reading'=>$r,'book'=>$b,'article'=>$a,'month'=>$m, 'status'=>$status)));
fclose($fp);
が次に経由でリンクを生成:私はコードでMySQLからJSONファイルを生成するためにPHPを使用していますアプリをダウンロードするためのリンクをダウンロードしてください。どうすればアンドロイドアプリに参加できますか?結合が必要ない場合、チャンクから解析できますか?
この種の問題のための最良のアプローチであるかどうかは分かりませんが、実際のレースやGTA san andreasのような3Dモバイルゲームは大きなファイルをダウンロードしたり、 。
ありがとうございます!それでは、病気だけでクライアント側に参加してください。何かのような追加または何か –
うまくいくはずです。 –