电脑技术学习

phpcms2007无法剪切图片终极解决方案

dn001

我在《phpcms2007后台无法剪切图片的原因及解决办法》中一文中提到过,phpcms2007后台裁剪l图片的时侯出现错误,不能够获取到图片,如下图:

我怀疑是服务器的配置禁止了allow_url_fopen的原因,但经过检查服务器,我发现服务器配置正常。所以这个问题一直没有解决,几次去phpcms论坛询问都没结果。这个问题困惑了我好久,但最近我在一次对phpcms2007的维护中发现,我发现我的phpcms2007裁剪图片时获取到一个错误的地址:http://www.mypchelp.cnuploadfile/it ,如下图:

因为图片路径错误,所以自然无法裁剪图片。找到出错的原因之后,下一步就是要修改这个路径。

(1)首先我判断为什么会生成这么一个错误的路径,我尝试将网站站点配置的URL地址更改为“http://www.startcn.net/,结果更改后我的裁剪图片功能果然能够使用了,这再次验证了我判断的准确性,然而在更改URL后,裁剪图片功能虽然能够使用,但我的网站却出现了其他问题,网站所有以{$PHPCMS[siteurl]}形式开头的访问的路径都出错,例如{$PHPCMS[siteurl]}{$skindir}/it_n_css.css 实际生成的路径为http://www.startcn.net//templates/myxhtml/skins/xhtml/it_n_css.css(红色部分为出现问题之处)。看来这种修改方式并不合理。

(2)在修改URL不可行的情况之下,那么唯一可行的方法就是修改网站的源代码了,但如何找到裁剪图片所调用的源文件呢?

要找到该源文件,比较省力的方法就是先找该源文件可能有的特征,经过仔细观察我发现,在文章频道中,只有“添加文章和“修改文章中有“裁剪图片这四个字,而对图片的裁剪是在用户点击这四个字后弹出的窗口中进行的。所以我觉得找到文件源码中带“裁剪图片的网站文件,或许能够有所突破。我用Macromedia Dreamweaver 8工具搜索网站目录下所有源码中包含“裁剪图片这四个字的文件。经过搜索,找到了四个文件:

对这四个文件进行分析,我发现裁剪图片的路径可能是由以下代码来输出:

var arr=Dialog('corpandresize/ui.php?<?=$PHPCMS[siteurl]?>'+thumb,'',700,500);

我将var arr=Dialog('corpandresize/ui.php?<?=$PHPCMS[siteurl]?>'+thumb,'',700,500);改为var arr=Dialog('corpandresize/ui.php?<?=$PHPCMS[siteurl]?>/'+thumb,'',700,500);

经过测试发现问题解决。