2012-07-10 51 views
0

在ASP.NET MVC,上傳的文件我只是使用<input type="file" ... />,和我發帖的形式採取行動,需要一個HttpPostedFileBase作爲參數。到現在爲止還挺好。現在的問題是:HttpPostedFileBase僅包含元數據並引用服務器磁盤上的臨時文件,還是該對象包含實際字節?這是因爲可擴展性是重要的,因爲我有一種情況,那將是非常方便的,以保持在會話中HttpPostedFileBase,但恐怕這可能迅速填補服務器的內存如果對象包含了上傳文件的實際字節。ASP.NET MVC HttpPostedFileBase存儲

回答

2

它使數據在內存中。如果您擔心可伸縮性,您可能需要規劃一個網絡農場,並且在會話中有許多大型項目不會如何。因此,最好自己管理這些文件(使用文件或數據庫並將文件名/ ID存儲在會話中)。

真正決定取決於有多少和多大的文件和(你需要他們的每一個要求,或許需要一些會話一個文件從現在20分鐘即)你如何處理它們。

+0

感謝您的信息。你有這方面的官方消息嗎?因爲我一直在拼命用Google搜索而沒有取得任何成功。 – chris 2012-07-10 11:32:36

+2

[MSDN](http://msdn.microsoft.com/en-us/library/system.web.httppostedfile(V = VS.90)的.aspx)_Files被上傳在MIME多部分/格式的數據格式。默認情況下,大於256 KB的所有請求(包括表單字段和上傳文件)都將緩存到磁盤,而不是保存在服務器內存中。有多種方法可以更改256 KB限制。但是這個文件在任何情況下都只用於緩衝。它從來不是一個完整的文件,你可以使用。您需要閱讀完整的流並根據需要執行任何操作(在內存中創建文件或存儲) – 2012-07-11 12:46:39