7

我将上传的文件存储在 web 目录中:

//src/Acme/CocoBundle/Entity/CocoFromTheNorth.php
/**
 * @ORM\Column(type="string", length=255, nullable=true)
 */
public $path;

protected function getUploadRootDir()
{
    return __DIR__.'/../../../../web/'.$this->getUploadDir();
}

protected function getUploadDir()
{

    return 'uploads/documents';
}

这是一个好习惯吗?将上传的文件保存在 web 目录之外,这样用户就不能直接访问它们不是更好吗?

我是否认为最好的方法是将上传的文件存储在网络根目录之外?那么哪里会是最好的呢?或者我如何配置 Web 服务器以拒绝访问上传目录?

4

1 回答 1

9

最好将上传的文件保存在 web 目录之外,并X-SendFile在使用 PHP 建立访问权限后用于提供这些文件。

我在这里概述了类似的内容:如何在服务器上安全地存储文件

在这里:缓存由 PHP 动态创建的 HTTP 响应

于 2012-06-11T06:59:53.493 回答