使用CI进行开发时遇到的一个诡异问题:无法找到文件404
问题描述:我写了两个方法,add_product,save_product,add_product方法将会展现一个form给用户,用户可以在这里填写产品的基本信息,还可以上传产品的一张图片,save_product用来处理上一个方法POST过来的数据。逻辑很简单,用到了CodeIgniter里的Upload和Image_lib两个Library,在机器上测试也是十分的顺利,传到服务器上我甚至都没有想到会出问题,但是却出了一个让我摸不着头脑的问题,在保存文件时,服务器返回了404,也就是文件没有找到。在确认了配置信息都正确的情况下,我有点摸不着头脑了,于是GET了一下save_product方法,发现可以GET到,POST数据过去的时候,却返回404,奇怪奇怪!
由于被这奇怪的错误信息所迷惑,所以到周一的早日才想到祭出我的法定,分解测试,把代码隔成段,我先把save_product里的代码全部注释掉,服务器返回500,正常;再把处理上传的代码解注释,服务器返回正常;再把进行图片缩放的代码解注释掉,服务器返回404,无法找到文件。基本上确定是在图像处理的环节出了问题,于是把’image_library’ => ‘GD2’换成’image_library’ => ‘GD’,问题解决。
可是到现在也没有想通即使服务器上没有gd2模块,我调用了相应的函数,为什么页面返回404。同时鄙视一下某个服务器提供商,PHP的许多常用的模块都没有加载,JSON解析都么有,怎么做应用呢??
更新:问题解决了,出问题的函数是imagefill,某个服务器提供商的虚拟主机里提供了GD2,不过是一个相当老的版本。我替换了解决PNG图片缩放透明的算法,就OK了,但是一旦调用imagefill,就会返回一个404错误,还是费解。
近期评论