我正在为我建立的网站制作内容管理系统。我希望系统是离散的,所以我让它只存在于一个名为'_admin.php'的PHP文件中。此文件中显示的所有内容均来自我存储在名为“admin”的子文件夹中的包含(不包括在内)。
网站上使用的照片存储在也位于根目录中的“资产”文件夹中。管理页面可以直接访问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();
}
我正在使用的上传脚本。这个脚本工作正常,因为我将图像存储在与脚本相同的目录中。我只是不知道如何将它们存储在我的根目录中。
答案 0 :(得分:0)
如果可以,我会指定完整的绝对文件路径。我通过define()
在我的CMS的配置文件中设置了这个。在安装时,你弄清楚该路径是什么并设置它。
define("BASEFILEPATH", "/home/.../[webroot]"); // The base file path for the website
您可能正在寻找更通用的东西,但您可以使用某种安装脚本,用户可以在表单中输入基本信息,例如用户名,密码等等,您也可以让他们进入此路径