1

Symfony 2.1 文件上传文档的最后一部分,提供了如何使用文档的数据库id作为文件名的说明,重写了getAbsolutePath()函数:

public function getAbsolutePath()
{
    return null === $this->path
        ? null
        : $this->getUploadRootDir().'/'.$this->id.'.'.$this->path;
}

我很困惑。似乎该path属性不再存储路径,而是存储扩展名。这里发生了什么?

我正在尝试更改课程以将上传内容放在uploads/YYYY/MM文件夹中,但不确定应该将其放在哪里。我的倾向是将/YYYY/MM部件存储在path属性中,但它似乎又在存储扩展名。

4

1 回答 1

1

代码块顶部解释了为什么路径属性中的扩展:

如果要使用 id 作为文件名,实现方式略有不同,因为您需要将扩展​​名保存在 path 属性下,而不是实际的文件名

至于放在哪里uploads/YYYY/MM- 纯粹通过查看文档示例,我假设它应该进入Document::getUploadRootDir()方法。

假设您正在存储一个createdAt字段来跟踪 Document 的创建时间,该方法可能如下所示:

public function getUploadRootDir()
{
    return sprintf('uploads/%s/%s', $this->createdAt->format('y'), $this->createdAt->format('m'));
}
于 2013-04-16T16:05:32.853 回答