获取文档根目录外的文件夹路径,以便从PHP上传照片

时间:2015-08-02 13:58:57

标签: php file-upload image-uploading document-root

问题:

这个问题有三个。

  1. 在阅读此建议(How do I secure a folder used to let users upload files?)以将照片存储在文档根目录外的文件夹中后,我在使用Cloud9时遇到了问题。问题是以有效的方式编写PHP代码,指向文档根目录上方的一个级别,然后指向images文件夹。
  2. 文件夹在文档根目录之外应具有哪些权限才能允许用户上传照片?我已经看到许多页面推荐666,因此用户可以读/写但不能执行。问题是,用户真的需要阅读照片吗?如果您正在使用数据库,则允许读取由PHP完成,而不是由用户完成。如果这是一个很好的案例,那么建议获得什么许可?
  3. 访问文档根目录之外的图像的推荐方法是什么?
  4. 代码:

    目前,当我将此示例应用于Cloud9环境时,我必须编写硬编码文件夹。

    $upload_dir = '/home/ubuntu/images/';
    

    虽然照片上传成功,但我认为硬编码路径不是正确的方法。

    期望的结果:

    要查找文档根目录外一级的/ images文件夹的路径,请为该文件夹设置正确的权限,并根据PHP中的最佳做法访问上传的图像。

1 个答案:

答案 0 :(得分:1)

1)如何找到路径:

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

define ( UPLOAD_DIR, realpath( 
        DOCUMENT_ROOT . 
        DIRECTORY_SEPARATOR . ".." . 
        DIRECTORY_SEPARATOR . "images"
    ) . DIRECTORY_SEPARATOR
);

2)在这种情况下,用户是指运行Web服务器的用户。例如,“www-data”。