php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)


Posted in PHP onNovember 16, 2016

在做PHP程序时,需要使用PHP做的文件下载

那做就做呗把代码复制过来改了一改。

很多效果也出来了

那么点击下载后,恩,本以为搞定了文件下载,谁知道,图片打开的时候提示文件损坏,这我就观察了文件的大小。似乎真是多了 1KB左右。

使用PS打开,恩,提示了损坏,不过图象可以出来。

那么我就认为是 那多出来的 1kb的问题了。

然后,我把一个txt上传上去,然后下载.

果然发现,文件的前面以及后面,都多了几个 字符。

那我就在想应该怎么去掉啊.各种百度,谷歌,上论坛提问.

最后,经过我一个多小时的搜索,终于找到了解决办法.

代码如下

public function download()
{
  $upload=M('upload');
  $data=$upload->find($_GET['id']);

  if(empty($data)){
    header('HTTP/1.0 404 Not Found');
    header('Location: .');
  }else{

  $path='./public/Uploads/'.$data['savename'];

  header("Content-Type:".$data['type']);

  header('Content-Disposition: attachment; filename="'.$data['name'].'"');

  header('Content-Length:'.$data['size']);

  ob_clean();
  flush();

  readfile($path);

  }
}

注意:

ob_clean();
flush();这个是关键哦。用了这两函数,搞定,图片正常打开,文字也不乱码。

以上这篇php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
echo(),print(),print_r()之间的区别?
Nov 19 PHP
php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
Aug 23 PHP
php二维数组排序与默认自然排序的方法介绍
Apr 27 PHP
深入解析php中的foreach问题
Jun 30 PHP
浅谈PHP变量作用域以及地址引用问题
Dec 27 PHP
php递归json类实例
Dec 02 PHP
Symfony2在Nginx下的配置方法图文教程
Feb 04 PHP
php5.3后静态绑定用法详解
Nov 11 PHP
PHP实现使用DOM将XML数据存入数组的方法示例
Sep 27 PHP
Yii2 中实现单点登录的方法
Mar 09 PHP
thinkPHP框架实现的短信接口验证码功能示例
Jun 20 PHP
thinkphp诸多限制条件下如何getshell详解
Dec 09 PHP
PHP Header失效的原因分析及解决方法
Nov 16 #PHP
php把时间戳转换成多少时间之前函数的实例
Nov 16 #PHP
php导出csv文件,可导出前导0实例代码
Nov 16 #PHP
PHP制作登录异常ip检测功能的实例代码
Nov 16 #PHP
php array_walk_recursive 使用自定的函数处理数组中的每一个元素
Nov 16 #PHP
Smarty模板常见的简单应用分析
Nov 15 #PHP
Smarty日期时间操作方法示例
Nov 15 #PHP
You might like
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
2011/08/09 PHP
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
2013/02/06 PHP
php生成静态html页面的方法(2种方法)
2015/09/14 PHP
PHP解决中文乱码
2017/04/28 PHP
Django 中 cookie的使用
2017/08/17 PHP
Ajax搜索结果页面下方的分页按钮的生成
2012/04/05 Javascript
flash+jQuery实现可关闭及重复播放的压顶广告
2015/04/15 Javascript
浅谈angularJS 作用域
2015/07/05 Javascript
js实现微信分享代码
2020/10/11 Javascript
JS 实现倒计时数字时钟效果【附实例代码】
2016/03/30 Javascript
Windows 系统下设置Nodejs NPM全局路径
2016/04/26 NodeJs
浅析Bootstrap组件之面板组件
2016/05/04 Javascript
原生JavaScript制作计算器
2016/10/16 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
2017/08/04 jQuery
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
js实现图片实时时钟
2020/01/15 Javascript
微信小程序pinker组件使用实现自动相减日期
2020/05/07 Javascript
vuex页面刷新导致数据丢失的解决方案
2020/12/10 Vue.js
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
[06:42]DOTA2每周TOP10 精彩击杀集锦vol.1
2014/06/25 DOTA
详解Python中的format格式化函数的使用方法
2019/11/20 Python
Python多重继承之菱形继承的实例详解
2020/02/12 Python
Pytorch 使用 nii数据做输入数据的操作
2020/05/26 Python
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
June Jacobs尊积帕官网:知名的spa水疗护肤品牌
2019/03/21 全球购物
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
《鸟的天堂》教学反思
2014/02/27 职场文书
文秘个人求职信范文
2014/04/22 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
幼儿园大班教师个人总结
2015/02/05 职场文书
数学教师个人工作总结
2015/02/06 职场文书
小学生勤俭节约倡议书
2015/04/29 职场文书
千与千寻观后感
2015/06/04 职场文书
Redis 操作多个数据库的配置的方法实现
2022/03/23 Redis