【问题标题】:CakePHP: Best practice for app-wide media-uploadsCakePHP:应用范围内媒体上传的最佳实践
【发布时间】: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 .

标签: cakephp upload


【解决方案1】:

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

CakePHP 已经有一些已建立的上传行为,您应该检查一下:Meio Upload,它适用于基本的图像处理,还有CakePHP Media Plugin,它更高级且最近更新。

【讨论】:

  • 非常感谢您提供指向媒体插件的链接。正是我正在寻找的东西(但不幸的是找不到;))
猜你喜欢
  • 2011-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-18
  • 2013-01-24
  • 2020-06-23
  • 1970-01-01
相关资源
最近更新 更多