在PHP中设置目标文件夹的正确语法

时间:2012-10-04 05:03:27

标签: php upload directory

我正在尝试调整上传脚本以适应000webhost。我不断收到有关目标文件夹不存在的错误。这就是我所拥有的:

define('DESTINATION_FOLDER','/uploads/');

我也试过

/public_html/uploads/

/subdomain/domain/com/uploads/

在示例中,我看到人们正在使用/ www /但我不知道它在哪里。

在这种情况下使用的正确语法是什么?

1 个答案:

答案 0 :(得分:4)

试试这个:

define('DESTINATION_FOLDER',$_SERVER['DOCUMENT_ROOT'].'/uploads/');

如果平台独立性对您很重要,请考虑使用PHP常量DIRECTORY_SEPARATOR:

define('DESTINATION_FOLDER',$_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.
                            'uploads'.DIRECTORY_SEPARATOR);

http://php.net/manual/en/dir.constants.php

修改
在文档根目录下存储上载可能存在安全风险。除非您希望Web服务器可以直接访问这些文件,否则您应该考虑将它们存储在网站空间中的文档根目录之外。如果您在主持人的“public_html”文件夹旁边创建了一个名为“uploads”的文件夹,则可以像这样访问它:

define('DESTINATION_FOLDER',$_SERVER['DOCUMENT_ROOT'].DIRECTORY_SEPARATOR.
                            '..'.DIRECTORY_SEPARATOR. // (up one level)
                            'uploads'.DIRECTORY_SEPARATOR);

或者只是将绝对路径(以/引导)直接指定给文件夹。