【发布时间】:2016-08-15 06:58:05
【问题描述】:
<?php
include "function.php";
$account = findSomeFile();
$file_url = '/var/www/html/tvconfig/netflix/'.$account.'.zip';
echo $account;
header('Content-Type: application/octet-stream');
header("Content-Transfer-Encoding: Binary");
header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\"");
readfile($file_url);
?>
上面是我的 PHP 脚本。当我加载页面时,我在浏览器中收到下载提示,但页面上没有回显。我尝试在 readfile 函数之后放置 echo,但它不起作用。
【问题讨论】:
-
不行,因为单个http请求只能有单个http响应;下载和回声将是两个响应
-
如果你想让它有点像那样工作,你可以从一个页面向下载页面发出 AJAX 请求。然后它将下载文件,您将停留在同一页面上。例如,您可以创建另一个 HTML 页面,在其中编写“您的下载已开始”之类的内容,同时向该页面发出 AJAX 请求。
-
而且在发送回声后,您的标题不会有任何区别
-
@Janno 我在回答中避免使用 AJAX :)
标签: php echo force-download