关于 安乐业(php+mysql)不能上传图片的处理
2011-01-09 11:34
274 查看
公司在做房产网,看着安乐业这个程序还可以,于是就用了个破解的。平时一直在改模板,顺便增加一些数据库信息的调用。
前天经理测试的时候,发现图片上传功能错误。
提示:“文件上传失败!失败原因:本地文件系统读写权限出错”
于是,查看源码,找到上传类,看着没有问题。所以觉得可能是服务器权限配置的问题。于是查看对应文件夹的用户权限,设置完毕,测试依然错误。于是就考虑是不是保存路径错误,再三测试路径没有问题。 难道是临时文件没有创建?
于是弹出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()这个转义函数,网上有一篇文章,写的很好,自己去搜搜看吧。
个人感觉这个转义是故意给加上的,于是贴出来解决办法,供遇到同样问题,或者相似问题的同仁参考。
前天经理测试的时候,发现图片上传功能错误。
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()这个转义函数,网上有一篇文章,写的很好,自己去搜搜看吧。
个人感觉这个转义是故意给加上的,于是贴出来解决办法,供遇到同样问题,或者相似问题的同仁参考。
相关文章推荐
- 在php中处理上传的图片,并将地址保存到mysql中
- 关于nicEdit上传图片不能用的一些处理
- php对图片上传的处理
- PHP上传图片和视频 问题处理(初学者)
- 使用MYSQL、PHP和FLEX实现上传图片,动态在DataGrid中添加下载按钮和上传的图片.
- 安卓中关于图片从网络获取,压缩,上传,下载,缩略图,缓存的一些处理总结(二)
- php中关于普通表单多文件上传的处理方法
- php&mysql(图片上传)
- PHP微信上传图片处理
- 【PHP】symfony上传图片的处理
- php 上传图片 对某一部分模糊处理 实现马赛克遮挡效果(待续)
- PHP_后台不能上传图片的几种常见问题
- PHP图片处理函数 类 (水印图,缩略图)[关于等比例压缩与裁剪压缩]
- php处理上传图片的步骤
- PHP中关于图片处理技术----错误的解决方案
- PHP&MySQL图片上传及管理
- 安卓中关于图片从网络获取,压缩,上传,下载,缩略图,缓存的一些处理总结(四)
- 上传图片文件用PHP处理
- 关于.net上传图片不能预览的问题
- 关于asp.net网站上传图片功能失败的处理