我有这个代码,并且出于某种原因,在强制下载文件代码后,下一个php代码无法运行..
$file = "2.jpg";
header("Content-Type:application/force-download");
header("content-disposition:attachment; filename=".$file);
readfile("$file");
echo "hello"
例如,echo "hello"
命令不起作用
答案 0 :(得分:0)
由于HTTP协议的工作方式,标题的内容(来自服务器的回复)用于确定如何处理回复正文的内容。
您正在添加标题,告诉浏览器(或接收回复的任何内容)将内容视为JPG数据。 所有内容。这就是发生了什么。您不会发送数据和一些HTML /文本来显示。发送页面或JPG内容。
如果你查看下载的图像文件的内容,它应该有"你好"在它的最后。
<强>更新强>
如果您愿意,可以使用元标记首先显示消息,然后重定向到您的下载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)。而且这有点棘手。