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 相关文章推荐
关于PHP语言构造器介绍
Jul 08 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
Apr 28 PHP
PHP数字字符串左侧补0、字符串填充和自动补齐的几种方法
May 10 PHP
Apache服务器下防止图片盗链的办法
Jul 06 PHP
CI框架整合widget(页面格局)的方法
May 17 PHP
yii的入口文件index.php中为什么会有这两句
Aug 04 PHP
php封装的mysqli类完整实例
Oct 18 PHP
php socket通信简单实现
Nov 18 PHP
PHP简单实现冒泡排序的方法
Dec 26 PHP
解决laravel 5.1报错:No supported encrypter found的办法
Jun 07 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
Jul 24 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 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
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
PHP之sprintf函数用法详解
2014/11/12 PHP
PHP PDOStatement::errorInfo讲解
2019/01/31 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
JavaScript 验证浏览器是否支持javascript的方法小结
2009/05/17 Javascript
JS操作Cookie写入和读取实例代码
2013/10/20 Javascript
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
IE6已终止操作问题的2种情况及解决
2014/04/23 Javascript
基于Javascript实现弹出页面效果
2016/01/01 Javascript
AngularJS下对数组的对比分析
2016/08/24 Javascript
Bootstrap基本组件学习笔记之导航(10)
2016/12/07 Javascript
解决vue 项目引入字体图标报错、不显示等问题
2018/09/01 Javascript
利用d3.js力导布局绘制资源拓扑图实例教程
2019/01/08 Javascript
微信小程序wx.navigateTo方法里的events参数使用详情及场景
2020/01/07 Javascript
Vue父组件向子组件传值以及data和props的区别详解
2020/03/02 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
vue总线机制(bus)知识点详解
2020/05/10 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
[02:56]DOTA2英雄基础教程 巨魔战将
2013/12/10 DOTA
python应用程序在windows下不出现cmd窗口的办法
2014/05/29 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
Python中print和return的作用及区别解析
2019/05/05 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
ASP.NET Core中的配置详解
2021/02/05 Python
Crocs波兰官方商店:女鞋、男鞋、童鞋、洞洞鞋
2019/10/08 全球购物
C#怎么让一个窗口居中显示?
2015/10/20 面试题
战友聚会主持词
2014/04/02 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
优秀校长事迹材料
2014/12/24 职场文书
2015年党员干部承诺书
2015/01/21 职场文书
预备党员介绍人意见
2015/06/01 职场文书
公务员爱岗敬业心得体会
2016/01/25 职场文书
合作合同协议书
2016/03/21 职场文书
CSS3实现指纹特效代码
2022/03/17 HTML / CSS
python语言中pandas字符串分割str.split()函数
2022/08/05 Python