另一方面,其他的附件管理,例如:照片管理,或是在其他專案曾經製作的廣告橫幅管理、商品附件管理。它們在「儲存(更新)附件資訊與檔案、檢視附件資訊、下載附件檔案、刪除附件檔案」這四項功能中的程式流程與這個附件管理是相同的,差別在於可能需要檢查不同的檔案類型、儲存在磁碟的檔名採用不同格式、儲存在磁碟的不同目錄、甚至儲存在資料庫的不同資料表。
而這樣子的差別,不同的類型有著相同的行為但是行為裡的細項動作各自不同,蠻適合使用物件導向來設計共用相同的行為。因此在 SampleCMS 之中,製作了附件管理共用元件 AttachFileManagerLogic 與檔案下載功能的共用元件 AttDownloadCommon。
下列先以循序圖概略描述「儲存(更新)附件資訊與檔案、檢視附件資訊、下載附件檔案、刪除附件檔案」這四項功能,
儲存附件概略循序圖 |
- 使用者挑選檔案並且上傳。
- 網頁程式檢查已上傳檔案的類型是否允許。
- 網頁程式從已上傳的檔案資料中取得檔案資訊(檔名、類型、大小、儲存目錄、儲存檔名)。
- 若這次為更新附件,代表之前有上傳過附件檔案,因此在儲存這次的附件檔案前要先刪除舊的檔案。
- 將已上傳的檔案儲存至磁碟。
- 儲存檔案資訊到資料庫中。
檢視附件資訊概略循序圖 |
- 使用者檢視指定附件代碼的檔案。
- 網頁程式從資料庫取得檔案資訊(檔名、類型、大小、儲存目錄、儲存檔名)。
- 網頁程式呈現檔案資訊、檔案類型限制名單。
* 上述的流程中,不同的附件管理功能,可能是不同的檔案類型限制、儲存在資料庫的不同資料表。
下載附件概略循序圖 |
- 使用者下載指定附件代碼的檔案。
- 網頁程式從資料庫取得檔案資訊(儲存目錄、儲存檔名)。
- 網頁程式增加檔案的下載次數,更新在資料庫。
- 網頁程式從磁碟讀取檔案資料並暫存。
- 網頁程式傳送暫存的檔案資料給使用者。
刪除附件概略循序圖 |
- 使用者刪除指定附件代碼的檔案。
- 網頁程式刪除資料庫中指定代碼的檔案資訊。
- 網頁程式刪除磁碟中的檔案。
下一篇繼續說明附件管理共用元件 AttachFileManagerLogic。
沒有留言:
張貼留言