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);
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文件不能打开的主要内容,如果未能解决你的问题,请参考以下文章