0

私はこのコードを持っていますが、何らかの理由でファイルコードを強制的にダウンロードした後、次のphpコードが実行されません..

          $file = "2.jpg";
          header("Content-Type:application/force-download");
          header("content-disposition:attachment; filename=".$file);
          readfile("$file");      

          echo "hello"

echo "hello"たとえば、コマンドは機能しません

4

1 に答える 1

0

HTTP プロトコルの仕組みにより、サーバーからの応答のヘッダーの内容を使用して、応答本文の内容を処理する方法が決定されます。

そして、コンテンツをJPGデータとして扱うようにブラウザ(または応答を受信して​​いるもの)に指示するヘッダーを追加しています。内容のすべて。それが起こることです。表示するデータと一部の HTML/テキストの両方を送信するわけではありません。ページまたは JPG コンテンツのいずれかが送信されます。

ダウンロードした画像ファイルの内容を見ると、末尾に「hello」が付いているはずです。

アップデート:

必要に応じて、メタ タグを使用して最初にメッセージを表示し、次にダウンロード URL にリダイレクトすることができます。この例の 2 は、リダイレクトが発生するまで待機する秒数です。

<!doctype html>
<html lang="en">
<head>
  <meta http-equiv="refresh" content="2;URL='http://example.com/readfile.php'" />
  <title>You will soon be downloading</title>
</head>

<body>
  Hello
</body>
</html>

これが最もクリーンな方法です。ファイルのダウンロードが完了するまでメッセージを表示したくない場合は、それも可能ですが、Javascript(AFAIK) に頼る必要があります。そして、それは少しトリッキーです。

于 2016-09-28T20:45:08.490 に答える