我有一個簡單的網站,用戶可以在其中上傳圖片,並給他們冠軍。此代碼部分應該放在哪裏?
上傳表單應該在沒有JavaScript和JavaScript的情況下工作(作爲XHR圖層)。
我有一個:
- Form_Upload
- Model_Post(與它的網關/映射器)
- UploadController
- SuperDuper - 類/資源用來處理文件上傳,生成縮略圖,將影像存儲等。
我認爲必須在UploadController :: uploadAction中完成的事情是:
- 創建新形式
- 檢查它是否是POST請求或GET請求
- 檢查它是否是XHR請求或定期請求
- Vaidate形式
- 下載/從形式
- 的Valide文件的接收文件MIME類型
- 使用SuperDuper轉換文件,並返回附件ID
- 如果一切都很好s帶有附件的ID AVE數據發佈到數據庫
- 返回效應初探在適當的範圍內
- 返回錯誤信息/表單錯誤在適當的範圍內
而且它似乎是一個很多事情在一個動作中完成。
而且有很多「ifs」,因爲這個動作應該處理不同的上下文:GET,XHR POST,POST。
是否有任何良好的Zend方式來處理這種情況(我相信它非常流行)。我應該在Controller中製作額外的私人函數來處理部分請求,或根據上下文請求嗎?
我的行爲現在是140行,看起來不對。
不確定爲什麼你甚至會允許GET上傳。 – RockyFord
好的一點,澄清一下:GET請求的這個操作將只返回一個上傳表單,而不處理上傳本身.foo.bar/upload僅用POST處理上載。 – jkulak