2013-06-26 63 views
1

當前我正在開發一個MVC Web應用程序,該應用程序應該具有某種條目的創建對話框。ASP.NET MVC在一個事務中創建的最佳實踐

應該可以輸入一些文字信息以及上傳文件,圖片,視頻等

產生以下問題:

是否有上傳一大堆的任何常規最佳做法ONCE的信息?在用戶真正決定提交信息之前,不應該在數據庫中創建該對象。

我想到了一些解決方案

  • 選擇文件時存儲與FileAPI的上傳在瀏覽器
  • 立即AJAX的上傳。但是,在哪裏「緩存」服務器上的文件?該條目不在數據庫中,因爲我正在創建該對象。
  • 打開表單時創建數據庫條目?但是,這會導致垃圾在數據庫

任何建議都非常讚賞

謝謝 親切的問候

+0

Asp.Net MVC不是無狀態的,HTTP是無狀態的.... – Liam

+0

你是對的,但我不想有一個狀態除了服務器上的用戶會話。 – user2224780

回答

2

我認爲這種做法將是很好的遵循。

  1. 有會話緩存,它將保持服務器內存中的文件字節。
  2. 當用戶進入上傳頁面時,清除它。
  3. 當用戶上傳文件時,保存服務器會話高速緩存上的文件字節。
  4. 當用戶真的想上傳文件 - 比如說 - 提交文件 - 種類的按鈕,從會話緩存中獲取文件並上傳到數據庫中。
  5. 清除保存在數據庫中的會話緩存。

如果是大文件,比如視頻,您希望創建一個臨時文件夾(每個用戶),將文件保存在該文件夾中 - 而不是會話緩存,並在文件保存後清除/刪除文件夾在數據庫中。

+0

如何處理大文件,例如視頻?他們會佔用整個內存,也許會被交換?會話應該存儲在數據庫中嗎? – user2224780

+0

更新了答案。 – Paritosh