質問

私は、そのユーザーが完全なオンラインのウェブフォームを持っています。彼らが提出押すと、それは彼らのために、ファイルのダウンロードが開始されます。

現時点では、私は、フォームの送信を処理し、ユーザーに適したファイルを生成し、適切なヘッダとそれをオフに解雇します。例えば...

header('Content-type: "application/octet-stream"');
header('Content-Disposition: attachment; filename="yourfile.txt"');
header("Content-Transfer-Encoding: binary");
これはすぐにダウンロードを開始しますので、

ただし、元のフォームは、ブラウザによって、画面上に残しています。

ダウンロードが完了したら、

私は本当に(またはダウンロードが開始される前に)いくつかの「ありがとう」画面に移動したいと思います。私はあなたが訪問するほぼすべてのダウンロードサイトは、(ダウンロードが開始される前に、通常の広告のあなたは完全なポンプに)これを行いますので、それは、可能である知っています。

だから、どのように私は2番目の後にダウンロードを開始し、「ありがとう」画面を表示していますか?

私は、フォームが再充填されることなく、再度ダウンロードしたファイルを望んでいないとして、任意のソリューションは、効果に戻るボタンの動作を提案しただろうか?

私は、クライアント上で利用可能サーバー上のPHPを使用していますとJavascript(とjQuery)に頼ることができます。

ありがとうございます。

役に立ちましたか?

解決

あなたははありがとうを文書にフォームを送信して置くことができるが、のMETAリフレッシュのファイルをダウンロードする:

<meta http-equiv="refresh" content="3;url=download.php">
<p>Thank you! The download will start in 3 seconds. If not, use this link to download the <a href="download.php">file</a></p>

他のヒント

何かを言い、2ページ目を追加し、「ありがとう、あなたのダウンロードは数秒で起動します」とJavaScriptを使用して、ダウンロードをトリガします:

$(document).ready(function(){
  window.setTimeout(function(){
    window.location = 'http://yourdownloadhost.com/file.zip';
  }, 1500);
});

またはメタリダイレクトを使用します。

あなたのページに非表示のiframeを挿入し、これはiframeにフォームを送信することができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top