質問: php5で、外部からファイルをダウンロードするモノを作っています。 htmlでフォームからPOSTでコードを送り、それをもとにダウンロードしています。 フォームからコードを送信すると、サーバー側でのダウンロード処理が終わるまでの時間、フォームの画面のまま読み込み中になってしまいます。 そこで、ダウンロード処理が始まる前に待機するように促すメッセージを出そうと、ダウンロード処理をしているphpの最初にechoでメッセージを出そうと試みたのですが、画面が切り替わるのはすべての処理が終わってからのようで、変わらずでした。 理想は、フォームから送信すると待機ページに切り替わり、ダウンロード中と書かれた部分がダウンロード終了と同時にダウンロードボタンになる、といった動作をさせたいです。 不可能であれば、ダウンロード処理を開始する前に時間がかかることを知らせるメッセージを出すだけでも構いません。 お力を貸していただけると幸いです。長文失礼しました。
回答: POSTのデータを受取る処理と、ダウンロード処理を別プログラムに分けて処理するしかありません。 同期処理である以上、全ての処理が終わるまでサーバから応答を返す事はありませんので、非同期で処理しましょう。