我的PHP脚本可以上传文件,但是在高于自身的目录中不能这样做。PHP无法在高于它的目录中上传文件
例如:它会在upload/
节省(相对路径在同一水平作为脚本),但不是在/usr/local/hello/
即使该文件的权限是正是相同。没有最大上传大小,最大发布大小,执行时间和安全模式关闭的问题。任何人有任何想法?我什至不能得到一个错误信息 - 只有当它失败时,下面的$worked
返回false。
<?php
// Removed the rest of the error-checking code!
$contentDir = "/usr/local/hello/"; // <-- doesn't work, chmod 0777, owner: root, group root
//$contentDir = "upload/"; <-- works, chmod 0777 owner: root, group: root
error_reporting(E_ALL);
$filename = $_FILES["filey"]["name"];
$worked = move_uploaded_file(
$_FILES["filey"]["tmp_name"],
$contentDir.$filename);
var_dump($worked);
?>
编辑:我的open_basedir设置,通过phpinfo()函数给出的,分别是:
Directive Local Value Master Value
open_basedir no value no value
谢谢!
可能不是这种情况(我会去open_basedir),但是你没有运行chroot这个东西?即你认为它是/ usr/local/hello,但php认为不然? (因为其他差异是绝对vs相对路径) – mvds 2010-07-20 23:03:57