2011-02-16 82 views
1

我的應用上傳圖像並將圖像信息存儲在數據庫中。如果需要,它可以操縱圖像。網站上有幾個可以像這樣管理圖像的點。在Zend Framework中管理圖像上傳

在每種情況下,我都有一個操作imageuploadAction()來處理事情。由於我的要求稍有不同,因此圖像將用於網站的各個控制器中的幾個不同的imageuploadAction。但是,我想將它們合併爲一個,以便使應用程序更易於管理。

所以,我的問題是什麼是處理Zend框架內的網站圖像上傳功能的最佳方式?我覺得它必須是:

  1. 有一個動作,做這一切,各種控制器將使用該操作,或...

  2. 建立某種形式的插件,做它。也許動作助手插件?也許是某種控制器插件?什麼樣的插件是做這件事的最好方法?

我傾向於認爲2是要走的路,但希望您對此有所反饋。謝謝!

哦,插件(或動作)將處理物理上傳照片,對它們進行分類,標記它們以用於各種用途,根據需要調整大小,根據需要將數據傳遞到數據庫以用於所有CRUD動作等。

+0

我會去第一個選項,因爲我沒有看到控制器插件或動作助手會如何進入這種情況。我認爲讓所有圖片上傳表單將數據發佈到單個操作並相應地處理它們會更容易。 – Marcin 2011-02-16 11:43:29

回答

2

您所描述的是動作助手的設計目的,所以我建議創建一個動作助手來處理上傳並儘可能多地將處理代碼移入其中。然而,你仍然需要從你的控制器中調用這個助手,然後它真正歸結爲適合你的應用程序的東西 - 一箇中央控制器,負責處理上傳(通過調用你的助手)或者從現有控制器方法的相關點調用助手。

如果你能得到一個點,你上傳圖片的行動是如此簡單:

public function imageuploadAction() 
{ 
    if ($this->_helper->HandleImageUpload([...])) { 
     [...] 
    } 
} 

然後我說你在非常良好的狀態的時候,你總是可以在其他地方重複使用的幫手如果您的應用程序的任何部分需要同時處理表單中的圖片上傳和其他一些數據。