PHP图像 因其本身有错无法显示
昨天终于将客户的一个网站迁移至虚拟主机上,满怀希望的敲入网址。唰的一声,网站很轻松的被打开了。 心里那个高兴啊~~~ 咦,怎么产品图片都没有显示出来。一块块都是空白。敲入img src对应的地址,看看是怎么回事?结果显示下面这样的效果: IE下是这样: 没办法,开始漫长的调试过程。解决步骤如下: 1. 是否是功能代码的错误:按照 关键字 图像 。。。 因其本身有错无法显示,很快google之几条解决方案。 在对应的代码位置加入 ob_clean(); 运行的结果没什么改变。 PS:为了定位该错误,事先用echo一步步输出调试了很久,才定位之具体的代码。 2. 思考:为啥在本地好好的,传上去就错了呢?是不是环境配置问题。 本地环境 XAMP,服务器环境 :windows + IIS7.5。 为了比较Server返回结果的异同,决定用 Fiddler2 来跟踪本地访问同样一个文件和服务器访问同样一个文件的异同。 打开Fiddler2,很快定位出结果。 测试地址: 服务器返回结果: 本地返回结果: 异同是:服务器文件头多了一个 FF BB BF 这个是什么呢?继续搜索,结果是UTF8的BOM头。也就是IIS返回的文件里多了一个BOM头。 UTF8普及知识见:http://blog.csdn.net/hiruyue/article/details/8747221 3. 开始检查 有那个文件被变成了带BOM头的UTF8,于是找到一个PHP版本的检测BOM头的代码,存成PHP文件,传到服务器。很快定位到结果,系统的配置文件被改成带BOM头的文件了。 这时候,才想起在用FTP上传网站以后,采用FTP自带的编辑工具修改了配置文件。当时是用NOTEPAD修改的。原来如此,赶紧将配置文件重新下载,用NOTEPAD++更改文件类型为 不带BOM的UTF8,保存,上传,访问。网站终于恢复了正常。 看看时间,已经过去了5个小时。 PS:在第二步的时候,还看到IIS在发送图片二进制流之前还发送了一个ICO文件流,这也会导致错误。 结束语: 在修改完成以后,发现了Orain兄弟的文章。他遇到的问题和我类似。PHP 使用流方式下载文件与 UTF-8 的 BOM 问题 总结: 1.遇到问题,先想想原因,再去解决。否则很容易纠结在调试代码中。 2.多搜索

Header("Content-type: image/PNG");这句代码前加上ob_clean();清除输出
A、http://www.server.net/index.php?ac=public&at=zoom&filename=upfile%2F2011%2F08%2F30%2F20110830222415_540.jpg&w=&h=120&iszoom=1B、http://localhost:90/index.php?ac=public&at=zoom&filename=upfile%2F2011%2F08%2F30%2F20110830222415_540.jpg&w=&h=120&iszoom=1


PHP图像 因其本身有错无法显示的更多相关文章
- 解决PHP生成校验码时“图像因其本身有错无法显示”的错误
今天使用http://crazymud.iteye.com/blog/452293给出的代码进行PHP生成校验码功能的实现,发现firefox一直提示“图像.......因其本身有错无法显示”的问题, ...
- PHP 图像因其本身有错无法显示怎么办
1 先确认自己的PHP和GD库版本够高,根据PHP手册的要求,PHP最好高于4.0.6,GD库要求2.0.1 2 对于使用PHPNOW的用户,在首页就可以找到相关信息 3 你也可以运行以下代码来检测是 ...
- 奋战5个小时解决诡异的PHP--“图像XX因其本身有错无法显示”的问题
昨天终于将客户的一个网站迁移至虚拟主机上,满怀希望的敲入网址.唰的一声,网站很轻松的被打开了. 心里那个高兴啊~~~ 咦,怎么产品图片都没有显示出来.一块块都是空白.敲入img src对应的地址,看看 ...
- PHP–图像XX因其本身有错无法显示
1.你输出的图像格式 PHP不支持,检查GD库有没有开启 对应的图像格式是不是支持2.文件里面的格式是否一致 如果是UTF-8的检查文件格式是不是UTF-8 [UTF-8+BOM很多IDE默认是这个格 ...
- php图片本身有错无法显示的解决办法
1.取消所有错误提示 2.如果没有报错,在header前(即设置输出格式前)使用ob_clean();
- 访问远程mysql数据库,出现报错,显示“1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server“
在使用Navicat for MySQl访问远程mysql数据库,出现报错,显示“1130 - Host'xxx.xxx.xxx.xxx' is not allowed to connect to t ...
- py+selenium 自动判断页面是否报错并显示在自动化测试报告【原创】
有需求就会去研究解决的路子. 现在需求就是,测试报告报错信息一堆,但却无法肉眼看出是什么问题,你只能知道定位不到元素或是超时,但你却不知道其实进入页面就报错了或是提交表单就报错了!也就是看到报错,需要 ...
- 最近使用Navicat for MySQl访问远程mysql数据库,出现报错,显示“2003- Can't connect MySQL Server on 'localhost'(10038)“。
优先考虑mysql数据库是否开启 1.先看报错窗口. 通过百度,最终找到的原因是:远程3306端口未对外开放. 于是下面进行远程3306端口开放操作. 首先远程连接服务器,点击“开始”-“管理 ...
- opencv::将两幅图像合并后,在同一个窗口显示;并将合并的图像流保存成视频文件
/** * @file main-opencv.cpp * @date July 2014 * @brief An exemplative main file for the use of ViBe ...
随机推荐
- Hadoop伪分布模式操作
http://blog.csdn.net/wangloveall/article/details/20195813 摘要:本文介绍Hadoop伪分布模式操作,适合于Hadoop学习.开发和调试. 关键 ...
- nexage video asset tag
video ad can't show InLine must match the example ,and xml content is Case Sensitive https:/ ...
- ImportTsv-HBase数据导入工具
一.概述 HBase官方提供了基于Mapreduce的批量数据导入工具:Bulk load和ImportTsv.关于Bulk load大家可以看下我另一篇博文. 通常HBase用户会使用HBase A ...
- juc并发工具类之CountDownLatch闭锁
import java.util.concurrent.CountDownLatch; /** * 闭锁: 在进行某些运算时, 只有其他所有线程的运算全部完成,当前运算才继续执行(程序流中加了一道栅栏 ...
- bzoj 2286(洛谷 2495) [Sdoi2011]消耗战——虚树
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2286 https://www.luogu.org/problemnew/show/P2495 ...
- vqmod for opencart插件制作进阶与技巧
FROM: http://www.sdtclass.com/4799.html 15年的时候,我写过一篇文章<略谈 vqmod for opencart 插件制作过程>,也不知道被哪些人抄 ...
- oracle 导入excel
方法二.利用PLSQL Developer使用PLSQL Developer工具,这个可是大名鼎鼎的Oracle DBA最常使用的工具.在单个文件不大的情况下(少于100000行),并且目的表结构已经 ...
- 剑指offer-python面试篇第一部分
互联网协议定义(分别有4层.5层及7层协议的说法,以下从上层向下层介绍)? a) 四层协议:应用层.传输层.网络层.网络接口层 a) 五层协议: 应用层:用户使用的应用程序都归属于应用层,作用为规定应 ...
- C#操作VFP的dbf数据库文件实例
C#操作VFP的dbf数据库文件实例 新一篇: js获取网站跟路径 实例中分别使用Oledb和Odbc操作vfp数据库dbf文件,操作包括:读取,增删改. 已测试可直接使用,使用方法:下面代码分两个部 ...
- 2017头条笔试题:二维点集中找出右上角没有点的点并按x坐标从小到大打印坐标
PS:这篇是之前本来就想发的但是一直没时间写,加上今天做了京东的题,结果代码名就命名为jingdong了……懒得改代码名重新跑一遍结果了=.= 暴力法去做就是遍历每个点,判断它是不是“最大点”.判断过 ...