我可以做这样的事情吗?
ob_start();
header("Content-Type: application/msword");
header("Content-Disposition: attachment; filename=".$title);
header("Content-Length: ".$size);
header("Content-Transfer-Encoding: binary");
readfile($path);
ob_end_flush();
目前我正在下载正确命名的文件,但文件的内容是包含上述代码的 php 的 html 输出。
我已经验证了 $path 是正确的。错误的 $size 会导致这种情况发生吗?我也尝试在 ob_start() 之后直接使用 ob_flush()。
编辑:下面的当前代码:
if (file_exists($path)){
ob_start();
header("Content-Type: application/msword");
header("Content-Disposition: attachment; filename=".$title);
header("Content-Length: ".filesize($path));
header("Content-Transfer-Encoding: binary");
readfile($path);
ob_end_flush();
die();
} else die ("Not Found");
上面的代码会导致同样的问题。文件已下载,命名正确,显然存在且大小正确,但文件的内容是页面的 html 输出。
提前致谢
我刚刚注意到这是在下载(错误)文件的最后:“int(14)内容”
但我并没有故意在我的代码中的任何地方输出这个。