周末闲来无事,在办公室玩CF,有一Shopex用户(Q号:275XX707)通过清风企业QQ(800017602)来找我,说是网站后台图片上传不了。
一般说来,图片上传不了(或生成不了)的原因有如下几种:
1、 网站目录权限设置不当,没有写入、修改权限。 涉及到远程传输存储文件的目录(home、images、plugins、themes),是必须有写入、修改权限的,一般就是将它的权限设置 为:777(即可读、可写、可运行)。 如果home目录(涉及到的子目录为upload)、images目录没有写入权限,就不能上传图片,会提示上传失败;如果单是images目录没有写入 权限,后台上传图片能成功,但不能正常生成列表页缩略图、将会出现没有缩略图或者直接显示原始大图的情况。
2、GD库没有配置。 因为shopex依赖于使用GD库生成产品列表页缩略图、详细页和相册图(即每个产品至少生成3张前台使用的图片),如果php中没有配置GD库,将导致图片无法生成,前台显示不了图片。
3、二次开发或修改影响了后台图片上传功能。一个资深的ShopEx二次开发技术,一般是不会犯这样低级的错误的;但一些业余的、兼职的、菜鸟级别的php学习者,往往顾此失彼,开发A功能影响了B 功能。 所以,如果你想让网店保障运营,那尽量找官方或者资深的开发者来做二次开发会比较稳当一些。
切回正题,与该用户沟通时得知,他的网站以前使用正常,若干天前忽然发现上传产品图片上传不了,期间没有做什么操作(实际不然,见后文)。查看后台系统信 息,GD库配置是正确的, 如果客户所述属实的话,那只有网站目录权限有问题。网站的目录权限的修改,一般可以通过ftp进行,但如果管理员没有给该ftp用户修改所有权和目录的权限,那就只能联系机房或空间商解决了。
按这个思路,中超积分榜并联系机房处理了权限问题,发现后台还是提示“图片上传失败”,但诡异的是,在商品编辑中上传相册图片是正常的,但在宝贝描述里直接上传图片 则提示失败。经再三询问,客户回忆说网站前台偶尔会出现产品图片地址不正确,多了很多级目录的情况(这种情况一般是伪静态规则设置不当和服务器php函数 配置不当造成的,在此不详述),所以客户找了一个不知名的设计师修改了程序,之后就出现这个问题了。呵呵,很多客户想解决问题,但经常又担心直接说原委问 题说大了,服务商报价高。其实你越准确的描述故障现象和出错前做过的操作,越能帮助服务商快速判断故障,降低人工成本。 要解决问题的朋友们,切记了!
问题到此基本弄清了。是业余开发者不恰当的修改了系统文件功能造成的。接下来要做的就简单了,找到同版本的程序包,将core目录重新上传一下(注:如果你做过二次开发,有覆盖core目录下的文件,请谨慎操作,最好联系原 服务商处理)。客户是网通单线,我是南方电信,上传速度比较缓慢。发包给客户上传,上传后测试一下,故障果然没有了。 终于松了口气!
后记:写下此文,是希望帮助碰到同类故障的站长们解决问题,希望对大家有所帮助。