1 现象:

  开发的时候用的好好的文件下载功能,部署到客户那边就不好使了,几乎所有从服务器下载下来的文件都不能打开。

  比较了上传前的文件、上传后服务器端的文件、下载后本机的文件,发现同一个文件,上传后还好好的,通过PHP下载下来就多了3个字节。

  使用uediter用16进制模式打开文件发现文件头部多了“EF BB BF”这三个字节。

2 分析:

  上网很容易查到这三个字节叫bom头,windows用来标识这是个utf8格式的文件。

  一开始很容易想岔,比如在下载文件的时候删除这个bom头、比如强制windows在下载的时候不添加这个bom头,可惜以上方法是不可能实现的。

  最后看到某大神在某帖子里留言说,如果PHP文件自己带着一个bom头,那么通过这个PHP文件下载的文件就会自动被添加上bom头!

  于是我下载了服务器端的PHP文件,发现服务器端的PHP文件还真的多了这三个字节!而我本地的PHP文件没有!

  那这三个字节是哪里来的呢?

  因为客户在上传这个PHP文件前用记事本编辑了该文件!!!!!!

  因为我们使用编译器的时候,考虑到中文问题,一般会将PHP文件设置成utf-8格式,整个项目都是utf-8的。

  如果用记事本编辑了这个utf-8格式的文件,系统就会自动给它加上一个BOM头,备注这是个utf-8格式的文件,系统以后方便识别这个文件!!!

  终极原因还是因为PHP开发的时候就没考虑到中文问题,所以必须用utf-8格式,而操作系统为了方便自己就给文件前面加bom头!

  所以机缘巧合之下,看到这篇文章的你,也遇到这个问题啦。

3 解决办法:

  很简单,把没有用记事本编辑过的PHP文件发给客户就问题解决啦!

  并且叮嘱客户不要用记事本去打开这些文件!!!

转载于:https://www.cnblogs.com/cation/p/7465293.html

使用php下载的文件打不开,自己用着没问题,客户用就不行?相关推荐

  1. php 下载后文件打不开,解决php下载excel无法打开的问题

    本节内容: php下载excel后无法打开的解决方法和注意事项. php下载excel文件,无法打开的原因分析: 1.在下载的过程中不要 输出任何非文件信息,比如 echo log信息. 否则下载后的 ...

  2. java通过poi生成excel并下载出现文件打不开、文件格式和文件扩展名无效问题的分析与解决

    需求描述: 需要完成这样一个功能:后台通过poi生成excle,前台点击按钮可直接下载. 代码逻辑(核心部分): 第一种: public String generatePlanExcel(@Reque ...

  3. Java 下载 Excel文件打不开

    public static String downloadFile(HttpServletResponse response, String fileName, String templatePath ...

  4. php 下载后文件打不开,php 文件下载下来后文件打不开?解决思路

    当前位置:我的异常网» PHP » php 文件下载下来后文件打不开?解决思路 php 文件下载下来后文件打不开?解决思路 www.myexceptions.net  网友分享于:2013-02-21 ...

  5. 微信公众号内,实现下载 PDF 文件。

    背景:需要在 微信公众号 内实现,通过点击一个[下载PDF文件]按钮,预期将 PDF 文件下载到本地自行打印. 前言:首先,本文采用的是 配合 后端 的实现方案.后端 返回file文件,通过 a 链接 ...

  6. U盘文件打不开了怎么恢复

    U盘文件打不开了怎么恢复 上周去客户那里拿资料,因为文件都是电子的,所以就拿了u盘去的.拷回来后我也没检查,想着等周一回报的时候一并给主管好了.但命运就是如此捉弄我,距离汇报还有不到两个小时的时候,我 ...

  7. 解决downloadjs下载的文件只有1kb

    vue项目使用downloadjs 插件下载文件: // 安装 npm install downloadjs -S// 导入 import download from "downloadjs ...

  8. springboot访问下载/resource/static下的静态资源;下载excel文件损坏,打不开

    放文件 直接把文件放到resource下的static文件夹中 看编译结果 启动之后看看是否被编译了 访问,下载 然后在浏览器输入下面地址就能自动下载文件了 http://localhost:8002 ...

  9. 吐槽一下,英伟达Nvidia官网下载驱动及相关资源,下载完全是打不开的文件

    吐槽一下,英伟达Nvidia官网下载驱动及相关资源,下载完全是打不开的文件 无论下载什么 都是三四十K的文件,无法打开 换了N中浏览器和环境都一样 你们也遇到了么?

最新文章

  1. 盒马mini带客流,老菜场攒烟火气,新老菜场交融相映成辉
  2. 50行代码搞定无限滑动幻灯片
  3. Cloudera Manager安装
  4. Github上传代码截图过程
  5. filter过滤后重新添加_Spring Boot 2.X(十):自定义注册 Servlet、Filter、Listener
  6. 苹果新款iPad或将于下月在新总部发布
  7. Flutter布局锦囊---完善信息页
  8. 前端技术周刊 2019-02-11 Serverless
  9. 如何从零构建你的自动化运维体系?——从制度到技术
  10. Android关于Paint你所知道的和不知道的一切
  11. 网络安全笔记-DDoS攻击
  12. QT实现植物大战僵尸中文版工具代码
  13. function函数
  14. 《人机交互技术》 第五章 界面设计
  15. 网页倒计时跳转JS代码
  16. 参与LABSUniswap IDO送普吉岛酒店公寓
  17. 网络变压器(滤波器)差模信号及网络滤波器差模传输特性
  18. 用lua随手写的扑克发牌方案
  19. 自定义mvc框架复习(crud)
  20. 在Java中 什么叫包-包有什么用途-如何创建包-

热门文章

  1. asp.net中后台javaScrip的使用
  2. DXperience 6.3.9 for Visual Studio 2002, 2003
  3. 学习.net应该知道什么
  4. 黄冈a货翡翠,开封a货翡翠
  5. 使用Doxygen + graphviz生成Unity 3d的UGUI类图
  6. 你和文字,陪我行走岁月
  7. 【WP8】Uri关联启动第三方App
  8. 论文的事情终于可以告一段落了
  9. [C++]出错member access into incomplete type
  10. 大数据平台的搭建思路是怎样的