解决办法

非常重要, 必须加入下面两行代码,
否则会出现 ZWNBSP (图片下载,显示文件已损坏)

    ob_clean();flush();

参考代码:


function my_download($file_dir, $file_name)
{$filePath = $file_dir . $file_name;//检查文件是否可读if (!is_file($filePath)) exit('Can not access file, ' . $filePath);if (!is_readable($filePath)) exit('Can not read file, ' . $filePath);/*** 这里应该加上安全验证之类的代码,例如:检测请求来源、验证UA标识等等*///以只读方式打开文件,并强制使用二进制模式$fileHandle = fopen($filePath, "rb");if ($fileHandle === false) {exit("Can not open file: $filePath");}//文件类型是二进制流。设置为utf8编码(支持中文文件名称)if (extension_name($file_name) == 'png' or extension_name($file_name) == 'jepg' or extension_name($file_name) == 'jpg'){header('Content-type:application/octet-stream;');}else{header('Content-type:application/octet-stream;charset=' . "utf-8");}header("Content-Transfer-Encoding: binary");header("Accept-Ranges: bytes");//文件大小header("Content-Length: " . filesize($filePath));//触发浏览器文件下载功能header('Content-Disposition:attachment;filename="' . urlencode($file_name) . '"');// 非常重要, 否则会出现 ZWNBSP (图片下载,显示文件已损坏)ob_clean();flush();//循环读取文件内容,并输出while (!feof($fileHandle)) {//从文件指针 handle 读取最多 length 个字节(每次输出10k)echo fread($fileHandle, 10240);}//关闭文件流fclose($fileHandle);
}

PHP进行图片下载的时候,出现图片损坏,无法打开(实质原因,多输出了一个空白字符ZWNBSP )相关推荐

  1. js 图片下载(不是直接在页面打开图片)

    浏览器图片下载(而不是直接在页面打开图片) 项目中出现了用户要下载图片的情况,做完了功能之后发现根本下载不了,都是直接在浏览器打开了,搜了好久才找到方法 代码如下 function downloadI ...

  2. 爬虫 图片下载器:从图片分享网站下载图片并进行分类整理

    目录 前言 1. 图片下载器概述 2. 环境准备 3. 分析目标网站 4. 使用Python编写图片下载器 4.1 安装依赖库 4.2 获取图片链接 4.3 下载图片 4.4 图片分类整理 5. 总结 ...

  3. python图片下载器(百度图片)

    之前觉得爬虫很好玩,去网页上面抓取数据感觉很神奇.初次接触在导入包就出现了问题,requests没有导入到程序中,在cmd命令里面输入pip install requests,下载到一半的时候就报错了 ...

  4. 网页图片下载器-免费网页图片批量下载器

    网页图片下载器,今天给大家分享一款免费网页图片批量下载器,支持任意格式的图片批量下载,只需要输入关键词或批量导入网页链接即可下载图片.让每个人都可以拥有各种高清图源.同时还支持图片批量压缩/放大/添加 ...

  5. 位图管理、图片下载缓存、管理图片内存 (四) 缓存位图

    缓存位图         下载单个位图对象到UI组件中是很直接的,然而 ,如果你需要同时加载一系列的图片,则会显得比较复杂.许多情况下(如 ListiView,GridView,ViewPager中) ...

  6. php图片下载代码,php让图片可以下载的代码

    // 文件目录 define('DL_DIR', 'temp/'); // 常见扩展名所对应的MIME类型 $MIMETypes = array( 'ez' => 'application/an ...

  7. 透明图片下载求全透明png图片_美甲图片:20款适合春季的透明粉色系美甲图片,清新有气质~...

    微信又㕛叒叕改版了~ 更新后很多小伙伴都说找不到阿束, 茫茫人海中,为防大家走失,请大家 点击上方 "服装穿衣搭配技巧大全l "  → 点击右上角"..." → ...

  8. 透明图片下载求全透明png图片_25000张PNG免抠透明图片,13G送给你,PS设计师免费领...

    1.解决你的免抠透明图片问题 PS爱好者想问问你,在做设计的时候,你是不是经常为一些设计元素困扰,在手里没有合适的透明背景图片? 如果你没有,那你就要自己PS抠图! PS免抠图片展示1 你自己PS抠图 ...

  9. android picasso源码下载,Picasso:一个专为Android制作的强大的图片下载和缓存库

    Picasso:一个专为Android打造的强大的图片下载和缓存库 简介 在Android应用中,图片消费了大量的资源,却为应用提供了很好的视觉体验.幸运的是,Picasso为你的应用提供了非常容易的 ...

最新文章

  1. mysql 5.7笔记_关于MySql 5.7.29免安装版本的一个笔记
  2. 一道暴力枚举题Win32版本示例
  3. Tcl与Design Compiler (三)——DC综合的流程
  4. Java锁详解:“独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁+线程锁”
  5. InfoWorld的日志管理系统评测
  6. Adam是RmsProp和momentum算法的结合(列表比较)
  7. 通过项目逐步深入了解Mybatis(四)
  8. Perforce使用指南_forP4V
  9. 微信一键设置“姓氏头像”,学起来!
  10. strust2 和 hibernate的整合------登录的实现
  11. python数据分析之(6)简单绘图matplotlib.pyplot
  12. JZOJ 1714. 小x的三角形(triangles.pas/cpp)
  13. 交互设计师谈颠覆式创新 | Think different
  14. 海豚php完全开发手册,ThinkPHP2.1完全开发手册
  15. 企业微信如何建立部门?
  16. 机器学习笔记~图像的空间分辨率
  17. pstack 跟踪进程栈
  18. SQL Server添加MDW性能监控报表
  19. 华为鸿蒙中标麒麟,华为鸿蒙OS短时间内威胁不到麒麟操作系统和统信UOS系统
  20. 手把手教你以太坊ENS域名注册,抢做一个3000万的发财梦!

热门文章

  1. python有序队列_【python】collections模块(有序字典,计数器,双向队列)
  2. cmd该清华镜像_Docker动手教程3.3:容器镜像构建2
  3. erlang精要(19)-以函数作为参数的函数,返回函数的函数(2)
  4. 【机器学习】扎实入门机器学习的路子
  5. pandas实战教学电子书上线啦
  6. 【深度学习】CNN图像分类:从LeNet5到EfficientNet
  7. 【知识图谱】关于知识图谱,我们接下来该研究什么?斯坦福教授们给出了答案...
  8. 快速掌握TensorFlow中张量运算的广播机制
  9. 推荐ApacheCN开源的一个机器学习路线图
  10. 数据可视化的利器-Seaborn简易入门