CakePHP:应用范围媒体上传的最佳实践

时间:2011-06-22 09:01:29

标签: cakephp upload

我正在尝试进行应用范围的媒体上传,应该可以从每个控制器/型号访问。
我想到了表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上传到普通控制器/模型更好?

1 个答案:

答案 0 :(得分:4)

您所描述的是Behaviour,它基本上是可以应用于任何模型的方法的对象。对于控制器,还有Components

对于CakePHP,已经有一些已建立的上传行为,您应该查看:Meio Upload这对于基本图像处理很有用,而且CakePHP Media Plugin更先进,最近更新。