2016-11-19 5 views
0

POSTパラメータを使用してダウンロードするファイルを生成するPHPファイルがあります。私はすでに、ファイルのダウンロードを再開するためにすべての作業を行っています(Rangeヘッダとすべての関連を使用しています)。リクエストにPOSTデータが含まれている場合にダウンロードを再開するにはどうすればよいですか?

ただし、ダウンロードを一時停止してから再開しようとすると、ブラウザはリクエストでPOSTデータを送信しません。これは代わりにGETデータを使用してうまく動作しますが、私はPOSTを使い続けたいと思います。どうすればこの仕事をすることができますか?

  • ファイルオンザフライで生成され、右のヘッダーを使用して(単にPHPによってprint'ed)ブラウザに送信されます。
  • ファイルをどこかに保存して提供することができません。 になっていなければなりません。
+0

ファイルをダウンロードすることは、投稿とユーザーの入力に依存するので、他のオプションは1つしか使用できません。セッション。しかし、これはすべてブラウザの実装に依存し、考慮すべき数があります。 – Xorifelse

+0

@ Xorifelseセッションについてのあなたの考えを詳しく教えてください。 – Lynesth

答えて

0

*私の悪い英語のために申し訳ありません。

よく、POSTパラメータを保存するデータベースがあるとします。
次に、paramsに基づいてダウンロード用の一意のURLを作成する必要があります。
ダウンロードリンクがdowload.php <であるとすると、ここにPOSTを送信します。

ここでパラメータを保存する必要があります。unique_idが得られます。その後
あなたが例えばresume_download.php

例のダウンロードURLがresume_download.php?req=[your_unique_id] か、URLを作ったために.htaccessを使用することができ、より親しみやすい

なり、ダウンロードを処理する(UNIQUE_IDのparamで)新しいページへのリダイレクトページ

これはダウンロードが継続されることを保証するものではありませんが、少なくともユーザーはフォームに再入力する必要はありません。

+0

私は単にGETを使って自分のパラメータを最初から送信することができます(これはあなたが提案しているものと実際には違うわけではなく、データベースに保存するという苦労があります)。私はGETを使わないでその作業をする方法がないと思います。 – Lynesth

+0

私はそうですが、あなたのフォームにたくさんの入力がある場合、getパラメータは十分ではありません。 – Atmahadli

関連する問題