2011-06-22 47 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

相關問題