1

私は次のようなHTMLフォームを持っています:

<form method="post" enctype="multipart/form-data" action="script.php" align="center">
    <input type="submit" value="Run Program"/>
</form>

次に、PHPページscript.phpがあります。表示して、自動的にダウンロードを開始します。ただし、ダウンロードを開始するためのヘッダーを追加すると、次のようになります。

header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename=' . $_FILES['upload']['name'] . '.tbx');
header('Content-Type: application/force-download');
header('Content-Length: ' . filesize($tbx));

ダウンロードは開始されますが、ページ自体はロードされません(おそらく、ヘッダーにファイルを転送するだけであると表示されているためです)。ページを正しく表示して自動的にダウンロードを開始するにはどうすればよいですか?

4

2 に答える 2

2

最初にHTMLページをロードしてから、ページの最後でダウンロードファイルに対してJavaScriptロケーションリクエストを実行する必要があります。

<html>
... your HTML ....
<script type="text/javascript">
document.location = '... location of file to download ...';
</script>
</body>
</html>
于 2013-01-04T22:45:14.607 に答える
1

そのサーバー側を行うことはできません。あなたはそのクライアント側をしなければなりません。

HTTP経由で一度に送信できるリソースは1つだけです。JavaScriptリダイレクトを含むページをダウンロードスクリプトに送信するだけです。

于 2013-01-04T22:43:53.703 に答える