关于 安乐业(php+mysql)不能上传图片的处理

    技术2022-06-25  58

    公司在做房产网,看着安乐业这个程序还可以,于是就用了个破解的。平时一直在改模板,顺便增加一些数据库信息的调用。

    前天经理测试的时候,发现图片上传功能错误。

    echo '<html>'; echo '<head>'; echo '<title>上传文件</title>'; echo "<meta http-equiv=/"content-type/" content=/"text/html; charset=gb2312/">"; echo '</head>'; echo "<body leftmargin=/"0/" topmargin=/"0/">"; echo "<table cellpadding=/"2/" cellspacing=/"1/" border=/"0/" height=/"100%/" align=/"left/">"; echo "<form action='upload.php?action=doupload&to=".$to."' method='post' enctype='multipart/form-data'>"; echo "<tr ><td valign='middle'>"; echo "<input type='file' name='uploadfile'>"; echo "<input name='submit' type='submit' value='上传'>"; echo "</td></tr>"; echo "</form>"; echo "</table"; echo "</body>"; echo '</html>';

    提示:“文件上传失败!失败原因:本地文件系统读写权限出错”

     于是,查看源码,找到上传类,看着没有问题。所以觉得可能是服务器权限配置的问题。于是查看对应文件夹的用户权限,设置完毕,测试依然错误。于是就考虑是不是保存路径错误,再三测试路径没有问题。 难道是临时文件没有创建?

    于是弹出tmp_name,顺着路径找一下,果然没有临时文件被创建,网上说可能是临时文件夹没有读写权限,于是添加权限。测试,错误依然。

    顺便提一下,设置php.ini上传临时文件夹目录的时候,发现两种情况。

    1.upload_tmp_dir="C:/WINDOWS/Temp"

    2.upload_tmp_dir="C:/WINDOWS/Temp" (我觉得可能是windows与linux目录写法不同吧)

    两种路径写法我测试都没有问题,顺便交代一下,我的是在windows下的iis扩展。(看到我帖子的人,要是知道原因,还请回帖提示一下,谢谢)

    实在没有办法,检测是不是整个程序文件夹权限或者什么有问题,于是自己写了个测试文件上传ceshi.php,发现可以上传成功,于是郁闷了!

    (期间还做了很多测试,以下省略200字……)

    就这样耗了我一天多的时间处理这个问题。最后发现 在程序根目录下的 common.inc.php下的 27行 有

      if(!$magic_quotes_gpc) {     $_FILES = c_addslashes($_FILES); }

    不知道源程序加上这个转义是什么意思,于是去掉,测试上传成功!

    上网查找为什么要加addslashes()这个转义函数,网上有一篇文章,写的很好,自己去搜搜看吧。

     

    个人感觉这个转义是故意给加上的,于是贴出来解决办法,供遇到同样问题,或者相似问题的同仁参考。


    最新回复(0)