在做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 文件下载 出现下载文件内容乱码损坏的解决方法相关推荐

  1. chm文件打不开,双击弹出乱码框,解决方法。

    我也是在网上找到一位博主的建议,照做了一下,chm文件就打开了,非常感谢这位博主,让我少走弯路. 下面是这位博主的关于解决这个问题的博客: https://bbs.csdn.net/topics/39 ...

  2. Java读带有BOM的UTF-8文件乱码原因及解决方法(转)

    转载:http://www.linuxidc.com/Linux/2012-12/76707.htm 最近在处理文件时发现了同样类型的文件使用的编码可能是不同的.所以想将文件的格式统一一下(因为UTF ...

  3. Word2007“由于文件许可权错误,Word无法完成保存操作”问题的解决方法

    Word2007"由于文件许可权错误,Word无法完成保存操作"问题的解决方法操作系统windows xp sp3杀毒软件: 金山毒霸word 2007保存文件提示"由于 ...

  4. 模板引擎不关心内容之——art-template,碰见的同步与fs.readFile异步以及函数回调问题的描述,针对fs的readfille读取文件时,返回不了异步函数返回值的解决方法

    模板引擎不关心内容 art-template art-template不仅可以在浏览器使用,也可以在node中使用 npm install art-template该命令在哪执行就会把包下载在哪里,默 ...

  5. Java读取UTF-8格式txt文件第一行出现乱码及解决;Java读带有BOM的UTF-8文件乱码原因及解决方法(转载)...

    原文地址:http://blog.csdn.net/jackpk/article/details/5702964/ Java读取UTF-8的txt文件第一行出现乱码"?"及解决 t ...

  6. 关于Centos中在线解压文件名中有中文字符出现乱码的终极解决方法 unar 我的压缩文件.zip

    本帖最后由 hsxnet 于 2018-2-4 16:14 编辑 关于Centos中在线解压文件名中有中文字符出现乱码的终极解决方法(亲测总结): 记录一下我测试的笨办法,以备自己日后查询: 一.从C ...

  7. Java读带有BOM的UTF-8文件乱码原因及解决方法

    Java读带有BOM的UTF-8文件乱码原因及解决方法 Java读带有BOM的UTF-8文件乱码原因及解决方法 - daimojingdeyu - ITeye技术网站 Java读带有BOM的UTF-8 ...

  8. php 导出csv文件bom,php 读取 csv 文件后, uft8bom 导致在页面上显示出现问题的解决方法...

    php 读取 csv 文件后, uft8bom 导致在页面上显示出现问题的解决方法 date.csv: "ID""NAME""EMAIL" ...

  9. 文件夹显示无法访问、拒绝访问需要权限的解决方法

    为了简便管理资料,我们都会选择在电脑上建立文件夹来保存不同作用的资料.文件夹显示无法访问.拒绝访问需要权限的解决方法但是当我们遇到某些文件夹打不开无法访问.拒绝访问时该怎么办呢?这里和大家讲一个方法来 ...

  10. maven文件报错(pom.xml或者jar包缺失)解决方法

    maven文件报错(pom.xml或者jar包缺失)解决方法 参考文章: (1)maven文件报错(pom.xml或者jar包缺失)解决方法 (2)https://www.cnblogs.com/wa ...

最新文章

  1. MySQL innodb_autoinc_lock_mode 详解
  2. mongo explain分析详解
  3. 2018-2019-1 20165236 《信息安全系统设计基础》第4周学习总结
  4. 发布几个PDF小工具
  5. vue处理json数据的原理_Vue解析json数据的渲染
  6. unity3d 绘制小地图_Unity中实现小地图的几种方式
  7. linux多线程 消费者,linux c 多线程 生产者-消费者二
  8. .NET如何写正确的“抽奖”——数组乱序算法
  9. 求一个整数数组的最大元素,递归方法实现
  10. redis 管理工具_Redis桌面管理工具Redis Desktop Manager 2019.2发布
  11. 批次程序安裝手冊寫法
  12. case when语句中加上and or的处理方式
  13. orm2 中文文档 4.2 hasMany(多对多关系)
  14. 位图(bitmap)—— C语言实现
  15. matplotlib 可视化 —— matplotlib.patches
  16. 跪求一个中国地图矢量图。
  17. AI语音技术的应用与发展前景
  18. 进程间通信IPC(一)pipe fifo mmap
  19. 机器学习实战——决策树
  20. 基于KINECT的拖拉机防撞系统

热门文章

  1. 新版office365介绍
  2. postfix邮件系统之邮件客户端无法收邮件问题解析
  3. 新旧版CCNP路由交换考试注意事项
  4. OSPF系列小实验之6:网络类型对邻居关系及路由学习的影响
  5. 2010年3月blog汇总:企业架构、团队管理
  6. 一篇关于Dataset与泛型、自定义集合的讨论
  7. 人生长途,感受着不断拼搏...
  8. pytorch 优化器调参
  9. Kbengine游戏引擎-【4】demo-kbengine_unity3d_demo 在容器docker上安装测试
  10. linux时间同步ntp服务的安装与配置