2011-01-11 161 views
0

我有一個表單,用戶可以上傳PDF文件(約30頁到一個文檔左右)。我想延遲將這些Pdf存儲在數據庫中,直到用戶提交整個表單。問題是上傳的文件的集合必須能夠通過回發持久化。話雖如此,我正在考慮將這些存儲爲會話變量,但是,這是太多的數據存儲,還是會話變量意味着在這裏和那裏存儲幾個字符串?如果這種方法不可接受,是否有其他方法?在ASP.net會話變量中存儲的最大數據量

回答

2

這是一個災難的要求。

將它們作爲臨時存儲在磁盤或SQL中,並且只存儲它們的路徑或標識。正如你自己所說的「會話變量意味着在這裏和那裏存儲幾條字符串」

我認爲即使路徑或ID也必須存儲在數據庫中,以便如果您的服務器回收會話,則不會丟失所有數據和用戶可能會有一段時間,直到您清除文件的超時。

+0

我會說,在網絡服務器上存儲文件在磁盤上比保存在內存中更加災難性的。純文本PDF格式相當小,如果他在一個小型系統中工作,那裏的用戶數量保持在合理的較低水平,或者數據庫訪問成本過高,那麼將它們存儲在會話中可能是正確的答案。 – Mark 2011-01-11 17:51:16

0

可以存儲在會話變量中的數據量僅受服務器內存容量的限制(如果您使用的是使用內存的會話持久性系統)。你需要計算你想要在一臺機器上服務的併發用戶數量,計算出每次會話使用多少內存,並確定你是否有足夠的內存。