我正在尝试创建一个可点击的链接;当它被点击它强制下载.xls
文件的下载(甚至是另存为选项会很好)。这就是我在下面的内容。
单击链接时,没有php日志错误,它会通过此代码。该文件也存在。我的标题错了吗?
if (@file_exists("/tmp/report/{$php_session_id}.xls")) {
$filename = "/tmp/report/{$php_session_id}.xls";
$content_length = filesize($filename);
header("Pragma: public");
header("Expires: 0");
header("Content-type: application/vnd.ms-excel");
header("Content-length: {$content_length}");
header("Content-disposition: attachment; filename=\"missing_addresses.xml\"");
readfile($filename);
}
如果代码正确,可能是服务器被锁定了吗?
另外,我正在测试Chrome for Mac(最新版本)
更新:我使用AJAX就是问题。
答案 0 :(得分:1)
您无法通过Ajax启动下载;作为正常的Ajax响应,响应将在以太中消失。 (理论上你可以捕获它,但是你将无法将其写入磁盘。)
使用
location.href =“source.php”;
或
<a href='source.php' target='_blank'>
直接将浏览器定向到资源。它会自动检测到它是一个要下载的文件,并启动下载。