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

  }

到此这篇关于php文件下载后无法打开的处理方案及代码的文章就介绍到这了,更多相关php文件下载后无法打开的解决内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

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

    PHP下载图片后文件打开显示损坏问题 用php写个图片下载方法,测试发现下载的图片大小都没问题,但是无法打开文件. 解决方法如下: 首先打开文件下载代码,增加 ob_clean(); flush(); 完整下载图片代码 if(isset($_GET['action'])&&$_GET['action'] == 'download') { if($_GET['file']) { $fileinfo = pathinfo($_GET['file']); header('Content-type

  • Vue 项目运行完成后自动打开浏览器的方法汇总

    目录 方法一:package.json(适用于vue3) 方法二:vue.config.js 方法三:插件+webpack 方法一:package.json(适用于vue3) 在文件中找到scripts–serve,在后面添加 --open 方法二:vue.config.js 该方法适用于 有vue.config.js的项目 找到vue.config.js文件,找到devServer,添加下面代码 open : true 方法三:插件+webpack 该方法存在局限性,仅适用于当前只运行一个项目

  • JS实现先显示大图后自动收起显示小图的广告代码

    本文实例讲述了JS实现先显示大图后自动收起显示小图的广告代码.分享给大家供大家参考.具体如下: 这是一个非常不错的JavaScript图片特效,当最初打开网页的时候,显示的是大图片,就像遮屏广告一样,停留一会后,自动缓慢收起,这时由JS控制更换广告图片,始终显示在网页顶部,在一些大门户网站我们经常见到这种效果,个人感觉挺酷哦! 先来看看运行效果截图: 在线演示地址如下: http://demo.jb51.net/js/2015/js-big-to-small-pic-adv-codes/ 具体代

  • Android打开相机和相册实例代码

    本文实例为大家分享了Android打开相机和相册具体代码,供大家参考,具体内容如下 打开相机  /** * 选择相机 */ private void showCamera() { // 跳转到系统照相机 Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); if (cameraIntent.resolveActivity(getPackageManager()) != null) { // 设置系统相机拍照后的输出路

  • Python实现自动打开电脑应用的示例代码

    由于时间原因,有时候可能会错过某个上网课的时间段.因此想要实现自动定时启动DingDing. 新手一枚,如有不当勿喷望大佬指正. 自动打开DingDing可以由两种方法实现: 通过找出找出软件在电脑中快捷方式的位置(电脑屏幕中的坐标),使用代码模拟鼠标进行双击打开. 通过输入软件在电脑中的安装路径打开软件. 1.第一种方法: ​在python中,使用pip install pyautogui 安装第三方库,在此库中,可以使用pyautogui.position()获取当前鼠标放置位置的坐标.我们

  • BootStrap点击下拉菜单项后显示一个新的输入框实现代码

    我的页面上有一个下拉菜单,页面上有一个文本输入框,一个图像上传框,文本输入框默认是显示的,而图片上传框是隐藏的. 假设下拉菜单有两项A和B,我想实现这样的效果:点击A时显示文本输入框,隐藏图像输入框:点击B时显示图像上传框,隐藏文本输入框,请问怎么实现? 用firebug调试的时候发现只有在加载html页面的时候几个click函数才会执行,页面加载好后点击下拉菜单项,这些断点都不会被执行,求解是怎么回事. 我的js代码如下(定义在<head>部分中): <script type=&quo

  • PyQt5打开文件对话框QFileDialog实例代码

    本文研究的主要是PyQt5打开文件对话框QFileDialog的代码示例,具体如下. 单个文件打开 QFileDialog.getOpenFileName() 多个文件打开 QFileDialog.getOpenFileNames() 文件夹选取 QFileDialog.getExistingDirectory() 文件保存 QFileDialog.getSaveFileName() 实例代码: from PyQt5 import QtWidgets from PyQt5.QtWidgets i

  • ztree加载完成后显示勾选节点的实现代码

    zTree 是一个依靠 jQuery 实现的多功能 "树插件".优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点. 介绍 zTree 是一个依靠 jQuery 实现的多功能 "树插件".优异的性能.灵活的配置.多种功能的组合是 zTree 最大优点.专门适合项目开发,尤其是 树状菜单.树状数据的Web显示.权限管理等等. zTree 是开源免费的软件(MIT 许可证).在开源的作用下,zTree 越来越完善,目前已经拥有了不少粉丝,并且今后还会推出更多

  • 使用百度云加速后网站打开速度慢、广告不显示的解决方法

    最近发现自己的博客打开很慢,通过ie浏览器打开速度还可以,使用任何第三方浏览器打开都超级慢,以为是HTML代码元素导致,一番比对后没有发现不是HTML5代码问题,但是在头部发现一串javascript代码很可疑, <script type="text/javascript"> //<![CDATA[ try{if (!window.CloudFlare) { var CloudFlare=[{verbose:0,p:1417916956,byc:0,owlid:&qu

  • 点击弹出层效果&弹出窗口后网页背景变暗效果的实现代码

    复制代码 代码如下: <html><head><title>网页特效-窗口特效-弹出窗口后网页背景变暗的效果</title><meta http-equiv="content-Type" content="text/html;charset=gb2312"><!--把下面代码加到<head>与</head>之间--><style type="text/cs

随机推荐