您的位置:首页 > 编程语言 > PHP开发

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

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

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

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()这个转义函数,网上有一篇文章,写的很好,自己去搜搜看吧。

个人感觉这个转义是故意给加上的,于是贴出来解决办法,供遇到同样问题,或者相似问题的同仁参考。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: