PHP代码不工作后头代码下载文件


php code not working after header code for downloading files

我有这段代码,由于某些原因,在这之后强制下载文件代码,下一个php代码不运行..

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

例如echo "hello"命令不工作

由于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)。这有点棘手