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. POJ1523 SPF tanjar割点求块数
  2. 比AlphaGo Zero更强的AlphaZero来了!8小时解决一切棋类! PENG Bo
  3. Cytoscape制作带bar图和pie图节点的网络图
  4. 挑战 Intel 和英伟达,高通发布 Cloud AI 100 边缘推理芯片
  5. 海思108M 4D1模式含义
  6. hive启动时出现javax.jdo.JDODataStoreException: Error executing SQL query
  7. python实现队列_Python学习教程:用队列实现栈
  8. Magento 自定义后台menu Insert dynamical menu in Magento’s Admin
  9. 1024 程序员节:给 DBA 们的福音
  10. Linux学习总结(37)——CentOS7下Firewall防火墙配置用法详解
  11. jquery's json url
  12. as5 samba 图形配置
  13. SharePoint2010内容类型剖析(三)
  14. VC++ 6.0实现视频捕捉(VFW)
  15. 别忽悠我,征信真的有黑名单吗?
  16. C语言填空答题考试系统
  17. java des 中文乱码_网络上DesUtil.java关于汉字加密解密出现乱码的问题
  18. 给B公司的一些建议(又一篇烂尾的文章)
  19. ASEMI场效应管7N80怎么测量好坏
  20. 一文详细介绍NeurIPS论文高引量的TOP10明星学者!!!

热门文章

  1. [大牛翻译系列]Hadoop(4)MapReduce 连接:选择最佳连接策略
  2. effective java第45条:将局部变量的作用域最小化
  3. mysql高可用性方案(2)
  4. Chapter 2 向量空间
  5. 活跃在海底隧道的铁路“小蓝人”
  6. 隐含马尔科夫模型的训练
  7. POSTMAN list参数传值
  8. JAVA中Long与Integer
  9. 【javascript激增的思考03】MVVM与Knockout
  10. [转]使用T4模板批量生成代码