0

以下のコード スニペットで示されている非常に基本的な質問があります。これは、zip ファイルをダウンロードしたい、より大きなプログラムの関連部分です。コメントが配置された、示されているコードは、期待されるブラウザー出力「今すぐファイルをダウンロードしてください」を生成します。

コードのコメントを外すと、zip ファイルがブラウザに正しくダウンロードされます。

ただし、ブラウザ出力は生成されません。どうすればコントロールを取り戻すことができますか? ユーザーが他のオプションを利用できるようにしたいと思います。(ちなみに、単一の「Content-disposition」行のコメントを外すだけで、制御が失われるのに十分です。)

コードを含めて関数に入れてみましたが、ob_start、ob_end フラッシュなどの多くの可能な組み合わせがすべて役に立ちませんでした。私は非常に基本的なことを見落としていると確信しており、いくつかの提案をいただければ幸いです。

ありがとう。

<?php
$sZipFN = 'file.zip';
// header("Content-type: application/zip");
// header("Content-disposition: attachment; filename=$sZipFN");
// readfile($sZipFN);
$sMsg = "Download the file now.";        
?>
<html>
  <body>
    <p> <?php echo $sMsg; ?> </p>
  </body>
</html>
4

1 に答える 1

1

できません - オプション ページにリダイレクトしてから、javascript リダイレクト ( document.location = 'http://download.url/';) 経由でダウンロードを開始する必要があります

これにより、ダウンロードが開始され、ユーザーは必要に応じてオプション ページに残ります。

ページの上部付近に「ダウンロードが開始されない場合はここをクリック」リンクを含めることを忘れないでください (javascript が無効になっている場合に備えて)。

于 2012-08-31T17:58:37.857 に答える