php 下载excel文件不能打开

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 下载excel文件不能打开相关的知识,希望对你有一定的参考价值。

header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$outputFileName.'"');
header("Content-Transfer-Encoding: binary");
header("Expires: Mon, 26 Jul 1970 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
readfile($file_path);

参考技术A php下载excel文件,
1、在下载的过程中不要 输出任何非文件信息,比如 echo log信息。
否则下载后的文件无法打开,提示格式错误或者文件被破坏。
2、 输出的excel格式一定要和后缀名保存一直,否也会提示格式错误或者文件被破坏

代码如下:
if (file_exists(CACHE_PATH .
$file_name))
//$this->logger->error('file
realpath:'.realpath(CACHE_PATH . $file_name));
header( 'Pragma: public'
);
header( 'Expires: 0' );
header( 'Content-Encoding: none'
);
header( 'Cache-Control: must-revalidate, post-check=0, pre-check=0'
);
header( 'Cache-Control: public' );
header( 'Content-Type:
application/vnd.ms-excel');
header( 'Content-Description: File
Transfer' );
header( 'Content-Disposition: attachment; filename=' .
$file_name );
header( 'Content-Transfer-Encoding: binary' );

header( 'Content-Length: ' . filesize ( CACHE_PATH . $file_name ) );

readfile ( CACHE_PATH . $file_name );
else

$this->logger->error('export model :'.$id.' 错误:未生产文件');

echo '<script>alert(\'export error, file not
exists!\')</script>';
本回答被提问者采纳
参考技术B 这是文件出错了,请检查文件是否下载完整。

以上是关于php 下载excel文件不能打开的主要内容,如果未能解决你的问题,请参考以下文章

下载时PHP生成的Excel文件不同

H5用安卓手机浏览器下载excel文件失败

用PHPEXCEL生成文件时,为啥下载下来的excel文件打不开

如何用PHPExcel读取超大excel文件

打开Excel提示发现不可读取的内容 怎么解决

cognos 不能另存为excel