php文件上传的问题,修改权限后仍未解决
ex.html提供前台上传控件:
filename:
ex.php后台处理程序:
0)
{
echo error:.$_files[file][error].
;
}
else
{
if($_files[file][type]==application/pdf)
{
if(file_exists(/home/sss/文档/.$_files[file][name]))
{
echo $_files[file][naem].already exists;
}
else
{
move_uploaded_file($_files[file][tmp_name],/home/sss/文档/.$_files[file][name]);
echo stored in:./home/sss/文档/.$_files[file][name];
}
}
}
?>
错误提示为
/warning: move_uploaded_file(/home/php上传文件.pdf): failed to open stream: permission denied in /var/www/html/php/practice/ex.php on line 25 warning: move_uploaded_file(): unable to move '/tmp/php1gtkfy' to '/home/sss/文档/abc.pdf' in /var/www/html/php/practice/ex.php on line 25
修改了文档的权限为777,仍然有问题, 求指教。
------解决方案--------------------
修改 /home/sss/文档 的权限为可读写即可
即 chmod('/home/sss/文档', 0666);
这个目录在 web 范围外,操作系统很可能不让匿名用户赋予执行权
------解决方案--------------------
你这里面怎么会有三个文件?
1、/home/php上传文件.pdf
2、/tmp/php1gtkfy
3、/home/sss/文档/abc.pdf
这里哪两个是一个文件?
如果上传的是/home/php上传文件.pdf:
$_files[file][name]:php上传文件.pdf
$_files[file][tmp_name]:php1gtkfy
那么abc.pdf哪里来的?你的代码中并没有rename啊?!!
如果实在linux上,请用 ./home/sss/文档/,不然会从根目录找起
------解决方案--------------------
可能还是apache 没给你相应的权限。改改apache配置文件,给相应目录权限。
------解决方案--------------------
我怀疑你的路径写错了
目标文件的路径都去掉,看看还行不行