【发布时间】:2011-06-22 09:01:28
【问题描述】:
我正在尝试制作一个应用范围内的媒体上传,它应该可以从每个控制器/模型访问。
我想到了在表media 上保存所有上传文件的记录,我的架构如下所示:
id
controller //to keep the reference from which controller the file was uploaded
foreign_key //since files should be uploaded to specific records, I need this id
filename
extension
fullname
size
created
modified
我不确定这样做的最佳方法是什么。我已经想到了组件、插件和一种行为,但仍然不确定。
我的应用有许多不同的控制器,有不同的记录。
例如,它管理项目,现在应该能够从项目编辑掩码中将 PDF 附加到特定项目。
由于这是其他控制器需要的功能,所以我也想在应用程序范围内编写它。
我很确定我需要一个助手来从掩码中调用上传功能。
可能类似于:echo $this->Media->uploadMask();,它为我提供了一个现成的上传掩码,用于控制器和我目前正在编辑的 id。
但我不知道我应该调用哪条路线进行上传。 /media/upload 之类的东西会非常好,但我不确定这是否适合 MVC 方法。
从我的特定控制器调用它会更好吗?还是将 AJAX 上传到普通控制器/模型更好?
【问题讨论】:
-
Media 插件 - 下面提到 - 正是这样做的,它使用具有以下架构的单个
attachments表:id、model、foreign_key、dirname、basename、checksum、group、alternative、created、modified .