2013-10-07 33 views
0

嗨我有一種情況,我需要從FileUpload控制器上傳多個文件並將它們顯示在頁面上。Mantaining狀態的文件列表,而不將它們存儲在數據庫或文件系統中

這可能是一個愚蠢的問題,因爲我沒有任何webforms的經驗,但我需要能夠維護頁面上的文件,而不必將它們存儲在數據庫或服務器上,直到用戶實際按下發布按鈕。

我的經驗與ASP.NET MVC和WEB API有關。

每當用戶上傳顯示的頁面,這是功能性的外觀上的文件中獲取的新文件:

enter image description here

當使用按下按鈕,我應該能夠擁有所有的訪問這些文件可以將它們存儲在數據庫和文件系統中。

由於數據庫的設計方式,我可以將文件存儲在數據庫中,以便我可以跟蹤它,直到用戶在teaxtarea中寫入內容併發布數據。

唯一想到的是將文件存儲在Session中,但同事建議我應該只在會話中存儲文件名,並將文件內容以字節的形式存儲在別處。

然後,我真的得到文件的路徑,並將它與fileName一起存儲在會話中,但看着FileUpload對象,我似乎沒有訪問filePath。

我最後的想法是將文件格式保存在一個隱藏的輸入中,但在調試時我意識到每次上傳一個新文件時,Page_Load都會被破壞,並且從我知道的webforms中得知,意味着頁面刷新使其變得鬆散隱藏的輸入與數據一起。

任何人都可以建議解決這個問題?

回答

1

我肯定會不是存儲會話中的文件。將文件存儲在具有GUID的臨時文件夾中(因爲我們希望它們是唯一的),並將這些名稱存儲在會話中是個不錯的主意。如果您想保留原始文件名,則可以將GUID附加到文件名中。您只需要記住在完成後從臨時文件夾中刪除文件,並且可能(爲了增加安全性)運行計劃任務,從temp文件夾中刪除不需要的文件。

相關問題