0

私のWebサービスでは、ユーザーはフォームを作成し、友人や同僚にフォームを作成させることができます。収集されたデータは、zipファイルストリームとしてダウンロードできます。ユーザーが大量のデータ(最大2GB)を持っていて、サーバーが明白な理由でphpプロセスを単に強制終了する場合があります。どういうわけか、フラッシュ、Java(ところでJavaはほとんどのユーザーにとっては機能しません)などなしでクライアント側でそのようなファイルを作成することは可能ですか?

4

3 に答える 3

0

Webサーバープロセスを制御できる場合は、これに対する解決策としてx-send-fileを検討することをお勧めします。

このSOの質問を参照してください

本質的には、phpプロセスを終了し、httpサーバーを介してファイルを送信します。このように、時間制限は問題ではなく、phpインスタンスがぶら下がっていません。

于 2012-10-12T09:30:32.073 に答える
0

スクリプトのタイムアウトとメモリ使用量を増やします。

set_time_limit関数ドキュメントを使用

パラメータに使用ini_setmemory_limitます。

もう 1 つの解決策は、クライアントにファイル パーツを提供することです。つまり、レコード数をダウンロードするための制限を与えます。つまり、1-1000、1001-2000 など

于 2012-10-12T08:12:20.623 に答える
0

ループ内でバックグラウンドで実行し続け、新しいデータをチェックするワーカー シェルを作成します。新しい未処理のデータが見つかった場合は、バックグラウンドでダウンロードを準備します。データをダウンロードする準備ができたら、「準備完了」のフラグを立てて、データが処理され、ダウンロードの準備が整ったことをユーザーに通知します (電子メール、ステータス更新のための ajax 経由のポーリングなど)。

niceを使用して、そのシェルに使用される CPU パワーを制限し、使用可能なすべての処理パワーを消費してサイトが遅くなるのを防ぐことができます。

これは、私のプロジェクトの 1 つでオーディオとビデオの処理を行う方法とまったく同じで、問題なく動作します。

于 2012-10-12T10:43:49.400 に答える