将上传的文件移动到根目录


Move uploaded file to root directory

我正在为我建立的网站制作内容管理系统。我希望系统是离散的,所以我让它只存在于一个名为"_admin.php"的PHP文件中。这个文件中显示的所有内容都来自于我存储在名为"admin"的子文件夹中的include。

网站上使用的照片存储在"assets"文件夹中,该文件夹也位于根目录下。管理页面可以直接访问assets文件夹,因为它也在根目录中。但是,上传文件脚本位于'admin'文件夹中的几个目录中,我希望上传的文件存储在assets文件夹中。

move_uploaded_file()方法采用文件的目标路径,但它需要一个直接路径。我尝试使用$_SERVER['DOCUMENT_ROOT'],但结果目录似乎没有我的任何文件。如果我在根文档中使用getcwd(),它会返回我可以使用的实际文件结构。如果我回显__FILE__也是一样的。但是我用这个SERVER常量做了很多实验,我找不到我的网站。

由于上传图像的脚本是作为表单操作调用的,所以我不能将根目录作为变量传递。

不太确定我做错了什么,有人有什么想法吗?

感谢编辑* *

//See if Files array contains new files
if (!empty($_FILES['file'])){
    foreach($_FILES['file']['name'] as $key => $name){
        $error = $_FILES['file']['error'][$key];
        $temp_name = $_FILES['file']['tmp_name'][$key];
        $dir = getcwd();
        $move_file = move_uploaded_file($temp_name, "$dir/temp/$name");
        if (($error == 0) && ($move_file)){
            $uploaded[] = $name;
        }else{
            die($error);
            }   

        }
        echo __FILE__;
        echo "<br/>";
        echo __DIR__;
        echo "<br/>";
        echo $_SERVER['DOCUMENT_ROOT'];
        exit();
    }

我目前正在使用的上传脚本。这个脚本运行良好,因为我将图像存储在与脚本相同的目录中。我只是不知道如何将它们存储到根目录

如果可以,我会指定完整的绝对文件路径。我在CMS的配置文件中通过define()设置了这一点。在安装时,你会找出这个路径并设置它。

define("BASEFILEPATH", "/home/.../[webroot]");   // The base file path for the website

您可能正在寻找更通用的东西,但您可以有某种安装脚本,用户可以在其中输入基本信息到一个表单,如用户名,pwd等,您可以让他们输入这个路径