【问题标题】:Move uploaded file to root directory将上传的文件移动到根目录
【发布时间】:2013-04-09 08:28:21
【问题描述】:

我正在为我建立的网站制作内容管理系统。我希望系统是离散的,所以我让它只存在于一个名为“_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();

    }

我目前正在使用的上传脚本。该脚本工作正常,因为我将图像存储在与脚本相同的目录中。我只是不知道如何将它们存储在我的根目录中。

【问题讨论】:

  • 你能贴出你与这件事相关的代码吗?
  • 到处都是。该网站使用了 30 个文件哈哈。我将使用上传脚本更新帖子。

标签: php file upload directory root


【解决方案1】:

如果可以的话,我会指定完整的绝对文件路径。我通过 define() 在我的 CMS 的配置文件中设置了这个。在安装时,您会弄清楚该路径是什么并设置它。

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

您可能正在寻找更通用的东西,但您可以有某种安装脚本,用户可以在其中将基本信息输入到表单中,例如用户名、密码等,您也可以让他们输入此路径.

【讨论】:

  • 这个功能我还真没听说过,看起来很酷。似乎常量只存在于脚本中,所以在我的上传脚本中,常量不存在。它是否正确?谢谢!
  • 是的,你是对的,它只存在于它设置的脚本中。我在我的 CMS 的每个脚本中都包含了我的配置文件,所以对我来说这不是问题。您也可以这样做,只需将其设置在一个文件中,并将该文件包含在您要使用的任何其他脚本的顶部。
  • 但如果我能成功定位配置文件,我无论如何都可以定位资产文件夹,这意味着不需要配置。我的问题是针对包含我的上传脚本的目录之上的目录。你还有什么想法吗?我可能会用不同的标题重新发布问题。谢谢。
  • 我刚刚发现 $_SERVER['DOCUMENT_ROOT'] 不起作用的原因是因为我的主机。我使用 000webhost 托管我的网站(用于开发,因为它是免费的),显然这是一个已知问题。在完成站点之前,我会将根存储在会话变量中。不过感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-07
  • 1970-01-01
  • 2014-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-08
相关资源
最近更新 更多