2011-06-22 44 views
1

我试图做一个应用程序范围的媒体上传,应该有可能从每个控制器/模型访问。
我想对表media持有所有上传的文件的记录,我的模式是这样的:CakePHP:应用程序范围媒体上传的最佳做法

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();它为我提供了一个准备好的控制器上的上传蒙版和我正在编辑的标识。

但我不知道我应该打电话上传哪条路线。类似/media/upload会很好,但我不确定这是否正确适用于MVC方法。
从我的特定控制器调用它会更好吗?或者是一个AJAX上传到一个正常的控制器/模型就好?

+0

媒体插件 - 正如下面提到的那样 - 使用带有以下模式的单个附件表来完成此操作:id,model,foreign_key,dirname,basename,checksum,group,alternative,created,modified。 – deizel

回答

4

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

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

+0

非常感谢您访问Media Plugin的链接。正是我在寻找(但不幸找不到;)) – Tim

相关问题