网络编程
位置:首页>> 网络编程>> php编程>> php文件下载后无法打开的处理方案及代码

php文件下载后无法打开的处理方案及代码

作者:小妮浅浅  发布时间:2023-06-13 19:12:03 

标签:php,文件下载,无法打开

PHP下载图片后文件打开显示损坏问题

用php写个图片下载方法,测试发现下载的图片大小都没问题,但是无法打开文件。

解决方法如下:

首先打开文件下载代码,增加


ob_clean();
flush();

完整下载图片代码


if(isset($_GET['action'])&&$_GET['action'] == 'download')
{
if($_GET['file'])
{
$fileinfo = pathinfo($_GET['file']);
header('Content-type: application/x-'.$fileinfo['extension']);
header('Content-Disposition: attachment; filename=favicon.ico');
ob_clean();
   flush();
readfile($_GET['file']);
exit();
}
}

内容扩展:

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

 }

来源:https://www.py.cn/php/jiaocheng/31677.html

0
投稿

猜你喜欢

  • 利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法。我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站
  • 大家都知道索引对于数据访问的性能有非常关键的作用,都知道索引可以提高数据访问效率。为什么索引能提高数据访问性能?他会不会有“副作用”?是不是
  •  代码如下:create proc p_sword_getblcolumn ( @tblN
  • 我准备在ASP中连接MYSQL了,请问如何做?首先要正确安装MYSQLX,装好之后,可调用以下程序即可正常访问MYSQL:<%@&nb
  • 实这本是说明一个问题 : 每个人在提高自己能力这件事情上, 需要持续不断地努力。以最典型的例子来看,只有通过学习,程序员才能保证不断进步。
  • Altova 公司的 XMLSPY 是个不可多得的好东西,它几乎可以开发所有的 XML 产品。最近用它来做 Schema
  • 今天终于抽出时间瞟了一眼JavaScript的新标准ECMA262v5,让我欣喜的是,不像是因为过于激进而被废除的v4,这个新标准对Java
  • 终于完成了偶的拖动窗口,花了近15个小时,庆祝一下(*^__^*);以前写了IE下的功能,于是又写了firefox下的功能,在firefox
  • 下列语句部分是Mssql语句,不可以在access中使用。SQL语句分类:DDL—数据定义语言(CREATE,ALTER,DROP,DECL
  • 每位SQL Server开发员都有自己的首选操作方法。我的方法叫做分子查询。这些是由原子查询组合起来的查询,通过它们我可以处理一个表格。将原
  • 一:文字加粗 倾斜的代码文字加粗的代码是: <b>你好</b>文字倾斜的代码是: <i>你好!</
  • 内容摘要:您是否想让您的网站有多种显示风格呢,本文介绍了如何使用CSS结合js实现动态更换页面皮肤风格。看了下面的介绍您就明白了如何实现了这
  • 我用FSO生成了unicode的文件,但这不是我想要的。FSO可以生成utf-8格式编码的html文件吗?用什么办法才能生成?FSO的编码问
  • 数据库系统的安全性包括很多方面。由于很多情况下,数据库服务器容许客户机从网络上连接,因此客户机连接的安全对MySQL数据库安全有很重要的影响
  • 什么是Firebug从事了数年的Web开发工作,越来越觉得现在对WEB开发有了更高的要求。要写出漂亮的HTML代码;要编写精致的CSS样式表
  • SQL Server 2000 清理日志精品教程SQL Server 2000 数据库日志太大!如何清理SQL Server 2000的日志
  • 首先.还是看效果.实现对文本域textarea中文字字数的限制。然后.米了...看文件.里面写的很清楚了.下面这个是单独的效果..提示用al
  • IE的有条件注释是一种专有的(因此是非标准的)、对常规(X)HTML注释的Miscrosoft扩展。顾名思义,有条件注释使你能够根据条件(比
  • 来自某个nb招聘的题目:请给Array本地对象增加一个原型方法,它的用途是删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重
  • 在这系列视觉设计的文章间隙插一篇字体单位的文章。前文说了,字体单位应该用em而不用px,原因简单来说就是支持IE6下的字体缩放,在页面中按c
手机版 网络编程 asp之家 www.aspxhome.com