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 相关文章推荐
ecshop 订单确认中显示省市地址信息的方法
Mar 15 PHP
解析php中获取url与物理路径的总结
Jun 21 PHP
PHP中怎样防止SQL注入分析
Oct 23 PHP
php发送与接收流文件的方法
Feb 11 PHP
PHP实现的构造sql语句类实例
Feb 03 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
Oct 18 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
Nov 25 PHP
php中final关键字用法分析
Dec 07 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
Mar 15 PHP
分享5个非常有用的Laravel Blade指令
May 30 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
Mar 18 PHP
PHP中的异常处理机制深入讲解
Nov 10 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
解析将多维数组转换为支持curl提交的一维数组格式
2013/07/08 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
2013/09/16 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
PHP中使用json数据格式定义字面量对象的方法
2014/08/20 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
Javascript学习笔记2 函数
2010/01/11 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
js创建对象的方法汇总
2016/01/07 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
js实现不提示直接关闭网页窗口
2017/03/30 Javascript
ionic2自定义cordova插件开发以及使用(Android)
2017/06/19 Javascript
实例讲解JavaScript截取字符串
2018/11/30 Javascript
vue将后台数据时间戳转换成日期格式
2019/07/31 Javascript
微信小程序如何加载数据库真实数据的实现
2020/03/04 Javascript
js中调用微信的扫描二维码功能的实现代码
2020/04/11 Javascript
Element Notification通知的实现示例
2020/07/27 Javascript
[02:21]十步杀一人,千里不留行——DOTA2全新英雄天涯墨客展示
2018/08/29 DOTA
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
python的keyword模块用法实例分析
2015/06/30 Python
python数组过滤实现方法
2015/07/27 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
python样条插值的实现代码
2018/12/17 Python
python scp 批量同步文件的实现方法
2019/01/03 Python
使用python Telnet远程登录执行程序的方法
2019/01/26 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
沙龙级头发造型工具:FOXYBAE
2018/07/01 全球购物
加拿大租车网站:Enterprise Rent-A-Car
2018/07/26 全球购物
安德玛加拿大官网:Under Armour加拿大
2019/10/02 全球购物
好听的队名和口号
2014/06/09 职场文书
数学教师个人总结
2015/02/06 职场文书
python实现简单倒计时功能
2021/04/21 Python