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")){”,在最后再多加一个“}”即可。
其实插件已经很火了,出现这个错误也不是致命的,虽然报错但传文件不受影响,不知道是因为其他网友都不传图片文件之外的文件,还是怎么,在百度、谷歌无果后只有自己修改了,小小经验,希望大家批评指教!
猜你喜欢
- 今天,我们很高兴地告诉大家 Google(谷歌)发布了针对中文用户的谷歌视频搜索。通过谷歌视频搜索,大家可以方便地搜索众多的中文视频,找到自
- “中国互联网还处在一个初级阶段,它作为媒体的潜力还没有完全释放出来,”腾讯网CEO马化腾昨天在接受记者采访时表示,他每天都需要保持诚惶诚恐的
- 百度,中国搜索引擎的老大,用户最多的搜索引擎,现在排名算法即将发生改变,我们应该怎么面对了?在不知道新的算法前,我们现在可以做下面的东西为新
- WordPress 的页面管理功能长期以来并不讨用户或开发社区的好,以下8个页面管理插件适合于 WordPress 2.5 版,可以用来改变
- 今天早上发现IIS无法启动,报错:发生意外错误0x8ffe2740.然后在IIS上就出现了一个红色的“Error&
- 很多的站长,联系到老谢,近一半是些产品网站,也就是购物网站,说白了,就是网店推广。在淘宝等媒体上开店,只不过是借助淘宝网站的一个平台的依靠。
- 网络游戏越来越赚钱,成本增加门槛也越来越高,网络游戏视乎成为了大公司和投资家的专利,小公司和小资本往往望而却步,近年来随着网络带宽的增加和游
- 核心提示:10年后,数据分析和行业渗透能力才是SEOER所特有的、能够经得起时间考验的,难以模仿的“核心竞争力&
- “我们将围绕B2B企业客户,建立中小企业“人才+能力提升”需求动态系统,逐步开发
- 前言:这篇文章主要是帮助没有购买过美国主机的朋友全面的认识美国主机的特点,以方便大家在中美两国主机的选择上有一个比较完善的参考意见。区别一:
- 据国外媒体报道,微软XboxLive首席程序设计师拉里·海博(LarryHyrb)周四表示,微软无意为Xbox 360
- 安装四个下载的软件包:#dpkg-i*.deb修改/etc/amavis/amavisd.conf:@inet_acl=qw(127/81.
- com国际域名从到期到掉下来时间为:30+30+5=65天域名到期后13天内仍可以正常解析和管理,并可以在线续费,续费价格与注册域名价格相同
- 一 为什么要在国外注册域名?随便讲讲,我现在非常喜欢在国外注册域名了,我想好处应该有2个:1是价格便宜2是管理方便 过户 转出 PUSH等非
- 2009年岁尾z-blog又有新版放出,辞旧迎新,版本代号是“Z-Blog 1.8 Walle Build 91204”。这次升级,主要是修
- 搜索引擎营销发展大事记1994年,Yahoo、Lycos等分类目录型搜索引擎的相继诞生,搜索引擎表现出网络营销价值,搜索引擎营销的思想开始出
- 大家在投放google adwords广告的时候,可能一开始就是想要带来流量,但是谁投放广告不是想挣钱,给自己带来客户呢,但是通过你投放的g
- 在IIS里的站点属性里“目录安全性”---“身份验证和访问控制&rdqu
- 图片采集归类的方法有两种,一种是根据图片的注释,一种是进行图像的人工智能分析。显然这两种方法都不能令人满意。对于第一种,图片的发布者很容易作
- 为了秀出最完美的自拍秀,通常都要动辄几个小时的化妆美容,好不麻烦呀。而且因为化妆技术不好,彩妆的效果不尽人意。郁闷,还好,我发现了一款可以给