php下载excel无法打开的解决方法_php实例

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>';
  }

时间: 2024-08-02 00:24:28

php下载excel无法打开的解决方法_php实例的相关文章

php下载excel无法打开的解决方法

 php下载excel后无法打开的解决方法和注意事项,大家参考使用吧 php下载excel文件, 1.在下载的过程中不要 输出任何非文件信息,比如 echo log信息. 否则下载后的文件无法打开,提示格式错误或者文件被破坏. 2. 输出的excel格式一定要和后缀名保存一直,否也会提示格式错误或者文件被破坏   代码如下: if (file_exists(CACHE_PATH . $file_name)){             //$this->logger->error('file r

PHP附件下载中文名称乱码的解决方法_php技巧

本文实例讲述了PHP附件下载中文名称乱码的解决方法.分享给大家供大家参考,具体如下: PHP中,如果要下载的文件名称为中文,则会出现文件标题乱码. 此时就需要对标题进行编码,也就是说先进性urlencode,然后再放入header,然后问题就解决了. $filename = urlencode("下载文档"); header ( "Content-disposition: attachment; filename=$filename.xls" ); 网上说,在RFC

ThinkPHP打开验证码页面显示乱码的解决方法_php实例

本文实例讲述了ThinkPHP打开验证码页面显示乱码的解决方法.分享给大家供大家参考.具体分析如下: 在用thinkphp开发的时候,有时会出现验证码乱码的问题,解决方法是把如下这个文件放在根目录,访问后就可以解决了,具体的PHP代码如下: 复制代码 代码如下: <?php if (isset($_GET['dir'])){ //设置文件目录   $basedir=$_GET['dir'];   }else{   $basedir = '.';   }   $auto = 1;   checkd

从性能方面考虑PHP下载远程文件的3种方法_php实例

今天在做导出Excel的时候,总是要测试导出的Excel文件,频繁的下载和打开,很麻烦就想着写段代码一气呵成  服务端导出Excel==>下载Excel文件到本地==>并打开的操作. 这里摘出PHP下载远端文件的方案,以备忘.其中第3种方法考虑到文件过大时的性能问题. 3种方案: -rw-rw-r-- 1 liuyuan liuyuan 470 Feb 20 18:12 test1_fopen.php -rw-rw-r-- 1 liuyuan liuyuan 541 Feb 20 18:06

ThinkPHP提交表单时默认自动转义的解决方法_php实例

本文实例讲述了ThinkPHP提交表单时默认自动转义的解决方法.分享给大家供大家参考.具体方法如下: 一.问题: 在ThinkPHP中提交表单插入数据的时候,单引号和双引号是会被自动转义的,就是会自动的加上反斜线,但是我不想给单引号和双引号加上反斜线. 在ThinkPHP中提交表单插入数据的时候,单引号和双引号是会被自动转义的,就是会自动的加上反斜线,但是我不想给单引号和双引号加上反斜线,在ThinkPHP中提交表单插入数据的时候,单引号和双引号是会被自动转义的,就是会自动的加上反斜线,但是我不

yiic命令时提示“php.exe”不是内部或外部命令的解决方法_php实例

本文实例讲述了yiic命令时提示"php.exe"不是内部或外部命令的解决方法,分享给大家供大家参考.具体方法如下: 在CMD中运行 yiic webapp work 如果报"php.exe"不是内部命令,是这样的:原因是Yii自带的yiic.bat找不到php.exe. 解决方法: 因为没有加入环境变量,所以无法直接执行php.exe. 右击"我的电脑->属性->高级->环境变量->系统变量->PATH->编辑&quo

thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法_php实例

本文实例讲述了thinkphp在php7环境下提示Cannot use 'String' as class name as it is reserved的解决方法.分享给大家供大家参考,具体如下: 我有一网站之前用php7运行thinkphp没有什么问题,但是最近发现开启验证码的时候发现有错误 Cannot use 'String' as class name as it is reserved 在google baidu搜索了一下还是没有解决方法 于是自己动手解决,看来我是第一个分享出来的人

PHP Header失效的原因分析及解决方法_php实例

在PHP中用header("location:test.php")进行跳转要注意以下几点: 1.location和":"号间不能有空格,否则会出错. 2.在用header前不能有任何的输出,包括include的页面中标签"?>"后不能有空格!! 3.header后的PHP代码还会被执行. 续: 问题:header函数前输入内容 一般来说在header函数前不能输出html内容,类似的还有setcookie() 和 session 函数,这些

php版微信开发Token验证失败或请求URL超时问题的解决方法_php实例

本文实例分析了php版微信开发Token验证失败或请求URL超时问题的解决方法.分享给大家供大家参考,具体如下: 微信开发最近要用到的一个功能,其实就是一个非常的简单的用户输入然后自动搜索数据库并进行一个数据回复了,这个与官方没多大的问题,但小编就微信Token验证失败折腾了许多,下面解决了给各位分析一下. 1.Token验证失败 这个就是要检查配置文件了,最基本的就是 define("TOKEN", "weixin");  weixin 是你的微信开发后台的ID