0

我有这个代码,它在本地工作但不是实时的——它接收来自数据库查询的结果,当前输出只发送到浏览器——而不像本地那样提供下载:

if($_POST['xls'] == 'on'){
$file_type = "vnd.ms-excel";
$file_ending = "xls";
$ttype = date('m-d-Y-H:i:s');
header("Content-Type: application/$file_type");
//header("Content-Type: application/force-download");
//header("Content-Type: application/octet-stream");
//header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=$ttype.$file_ending");
header("Pragma: no-cache");
header("Expires: 0");
}

两台服务器都是 linux,使用 php 5.2.17 运行 cPanel 的实时服务器我不管理 cpanel 服务器,无法升级 php

谢谢

4

3 回答 3

0

看起来您的文件名没有扩展名。在 php 中,.用于连接 - 所以现在你的文件名是09-18-2013-01:31:30xls. 它可能也不喜欢冒号。尝试这个:

$ttype = date('m-d-Y-His');
header("Content-Disposition: attachment; filename=".$ttype.".".$file_ending);
于 2013-09-18T19:33:53.680 回答
0

尝试删除

header("Content-Type: application/octet-stream");

这可能会使浏览器将其流式传输到文档中,而不是要求下载。

于 2013-09-18T19:35:47.613 回答
0

试试这样

<?php 
$date = date("d/m/Y");
if($_REQUEST['cetak'] == 3){
    $file_type = "vnd.ms-excel";
    //$file_name= "somename.xls";
    header("Content-Type: application/$file_type"); 
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("content-disposition: attachment; filename=Report".$date.".xls");
    header("Expires: 0");
    header("Pragma: no-cache");
    header("Content-Transfer-Encoding: binary"); 

}
?>
于 2014-01-31T02:15:29.207 回答