WP插件Watermark Reloaded上传非图片文件出错修改
发布时间:2012-03-05 20:12:13
今天在检查博客附件的时候发现有以前上传的一个注册表导入脚本reg文件丢了,重新上传的时候居然报错了。
仔细看了才发现是之前安装的Watermark_Reloaded插件导致的错误,没多想,打开插件源代码看看原因,因为小博不是专注PHP的(不过今天发现PHP的语法跟Java很是相似啊),所以没那么快找到原因,后来分析可能是因为上传了非图片文件,而Watermark_Reloaded又针对所以上传的附件进行检查并加水印,所以会导致程序出错。
错误提示
知道原因解决起来就很简单了,通篇看下来,发现错误的根源是出在doWatermark这个函数里面,这里在对附件进行加水印的操作前根本没有判断是不是图片附件,也许国外人就只上传图片附件,不传其他的吧,这里也不再深究了。
修改办法也很简单,函数默认获取了文件的mime_type,函数如下
public function doWatermark($filepath) {$mime_type = wp_check_filetype($filepath);$mime_type = $mime_type['type'];$options = $this->get_options();$image = $this->getImageResource($filepath, $mime_type);$this->imageAddText($image, $options);return $this->saveImageFile($image, $mime_type, $filepath);}
文件类型的具体返回值不大清楚,于是在$mime_type = $mime_type['type'];这一句获取文件类型后面打印了下,发现是image\jpeg2822之类的,这样就好办了,图片文件肯定都包含image字样,于是我就在$options = $this->get_options();前面加入if判断语句,小博是很久没碰php了,还只是停留在基础的了解阶段,因此对php函数不是很熟悉,查了w3c的手册,一开始用了substr截取mime前五个字符与字符串image进行比较,发现不能正确加水印,可能mime返回值不是字符串或者有空格什么的,总之和image不是相等的,无奈这里就直接不用这个了,换个思路,检查mime里面是否包含image,依然查手册,最后使用了strstr函数,修改函数如下
public function doWatermark($filepath) {$mime_type = wp_check_filetype($filepath);$mime_type = $mime_type['type'];if(strstr($mime_type,"image")){$options = $this->get_options();$image = $this->getImageResource($filepath, $mime_type);$this->imageAddText($image, $options);return $this->saveImageFile($image, $mime_type, $filepath);}}
为了便于读者查看,我将原程序复制过来删除了作者的注释,这里其实只用添加一句,在“$options = $this->get_options();”这句前面加入“if(strstr($mime_type,"image")){”,在最后再多加一个“}”即可。
其实插件已经很火了,出现这个错误也不是致命的,虽然报错但传文件不受影响,不知道是因为其他网友都不传图片文件之外的文件,还是怎么,在百度、谷歌无果后只有自己修改了,小小经验,希望大家批评指教!


猜你喜欢
- 其实,在服务器的安全设置方面,我虽然有一些经验,但是还谈不上有研究,所以我写这篇文章的时候心里很不踏实,总害怕说错了会误了别人的事。本文更侧
- 前言lynis 是一款运行在 Unix/Linux 平台上的基于主机的、开源的安全审计软件。Lynis是针对Unix/Linux的安全检查工
- 我们知道VMware也分几种版本,普通用户最常用的就是Workstation,但是不管使用哪种版本,我们都能发现在安装过程中让我们选择 网络
- 1 背景知识1.1 什么是XSS攻击XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascadin
- 据国外媒体报道,放眼当今的科技市场,谷歌可以说是互联网领域中最大也是最重要的公司之一,它主导着搜索和广告市场。种种迹象表明,谷歌的市场定位不
- 你是否厌烦了在电脑上一张张的点击翻看照片?你有没有想过让自己的照片舞动起来?一般制作一个具有FLASH动画效果的电子相册,网友需要使用一个专
- 一,删除所有无价值的插件以下为引用的内容:插件是致使WordPress博客访问速度变慢的主要杀手之一,当你的博客访问速度逐渐变慢的时候,问问
- 最新消息,中国最大的互联网社区平台及服务提供商康盛创想(Comsenz)旗下核心产品UCenter Home(简称UCHome)新版本研发已
- 邀请好友是现今SNS网站必备的利器之一,其中开心网就是网友导入QQ、MSN、E-mail等的好友名单进行邀请,而在短时期内迅速扩张网站会员人
- 到底谁是真正的“开心网”?这个问题现在只能交由法律来最终裁定。昨日上午,北京市二中院开庭审理北京开心人信息技术有限公司(kaixin001.
- 10月16日消息,据国外媒体报道,知识搜索引擎Wolfram Alpha今天开放API,开发者们可以将其纳入自己的应用。Wolfram公司在
- 如何从博客中扩展我们的外部链接。但需要申明一点的是:思亿欧所说的不是通过大量注册博客增加自己链接的方式。而是,参与到跟自己主题相关的博客中分
- 10月29日消息,据国外媒体报道,亚马逊网站将在美国时间10月29日开始运行网上购物升级服务系统:亚马逊PayPhrase。届时,在线购物的
- 问题描述ESXI内的windows上安装workstations后,里面的虚拟机只能ping通windows宿主机的地址,ping不通其他的
- 十分不理解阿里妈妈推出的1元广告位的价值,也很难让我们接受站长以1元/周的价格在阿里妈妈上出售,并且这个价格还包括了阿里妈妈15%的管理费。
- 前言当系统空间使用量过大需要清理空间或者清理某个文件时,有时会出现执行了删除命令之后磁盘空间并没有释放,很多人首次遇到该情况时会比较困惑,在
- 个人认为不管做什么网站一定要有特色,E文网站也是一样。先简单阐述下做网站的几个关键,也许大家听起来觉的很简单,但是大家可以认真想下你做到没。
- 1. 用vi编写一个文档test.txt,将其存放在用户在用户主目录下,内容如下:Plagiarism is breach of Integ
- 10月14日,中国软件资讯网据外电报道,当苹果的市值又再度超越Google时,这次它能够一直保持领先吗?《BusinessWeek》专栏作家
- 我们非常高兴地通知大家我们即将发布一项新功能,这个功能可以让您在AdSense 账户中轻松管理您的广告单元。 &nbs