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


Get path to folder outside document root for uploading photos from PHP

问题:

这个问题有三个方面。

  1. 在阅读了这条建议(如何保护用于让用户上传文件的文件夹?(以将照片存储在文档根目录之外的文件夹中后,我在使用Cloud9时遇到了一个问题。问题是以一种有效的方式编写PHP代码,该方法指向文档根目录上的一个级别,然后指向images文件夹
  2. 允许用户上传照片的文件夹在文档根目录之外应该具有哪些权限?我看到很多页面推荐666,这样用户就可以读/写,但不能执行。问题是,用户真的需要阅读照片吗?若您使用的是数据库,则允许由PHP而不是用户进行读取。如果这是一个好的情况,那么建议使用什么权限
  3. 访问文档根目录之外的图像的推荐方式是什么

代码:

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

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

虽然照片上传成功,但我觉得硬编码路径不是一种合适的方式。

期望结果:

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

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数据"。