2014-03-26 74 views
0

我有一個aspx網頁,其中有一個選項可以上傳多個文件。這些文件必須以BLOB格式存儲在數據庫中。 什麼將是最有效的方式來存儲這些文件?上傳文件的大小或數量沒有限制。 每當用戶點擊文件上傳按鈕時,我應該一個接一個地上傳文件,或者在保存按鈕上提交整個表單時同時上傳文件。請記住,這是由多個用戶使用大約〜1000同時上傳文件的有效方法

+1

您一次上傳1000張圖片並將這些斑點存儲在SQL Server中?你確定這是個好主意嗎?數據庫將變得非常大,非常快 –

+0

首先,我已經實現了一個一個的上傳。 – Peyush

+0

其次,我只能使用MSSQL Server。別無選擇。是的,桌子將會非常大,而且會快速填滿。只有當用戶將會非常大時,我纔會將其視爲一種場景。 「一個接一個或同時上傳」哪一個更好 – Peyush

回答

0

集文件上傳控件的多個屬性爲「多」,並在後面的代碼get請求用戶提交的文件,然後依次通過他們的記憶流將它們作爲字節數組存儲在你的數據庫中

0

考慮到它是一個BLOB數據,我會考慮使用一些非SQL數據庫(MongoDB,RavenDB),在那裏你只用數據保存「文檔」,所以它更容易在這種情況下管理。但在這種情況下您將需要更多的磁盤空間。

怎麼樣上傳:我會一個接一個,因爲如果連接斷開,至少有一些文件被傳送。

在服務器端,會在內存緩存中看到Redis,總是準備好接受用戶的「會話」(一系列聲明數量的文件),並且一次全部發送,或者連接失敗的內容該會話保存在磁盤上。

只是概述可以做些什麼來給你一些提示。

+0

謝謝,回覆。在這個項目中,我們只需要使用MSSQL,另外我已經實現了一個一個的上傳案例。它是更好地將這些文件逐個從暫時的直接保存到主表或者我應該首先將它們保存到一個臨時表,然後將它們複製到主表,最後刪除這些條目。我目前正在做第二種方式,以減少多個用戶對主表的點擊次數。 – Peyush

0

考慮到您的方案(圖像必須存儲在(我假設)一個單一的SQL數據庫)的侷限性,我會逐個上傳圖像,我會調查帶有指數後端處理的SQL Server Transient Fault Handling,關閉策略可以幫助嘗試處理「排隊」的上傳。

沒有更多的細節我真的不能說。

+0

感謝,會考慮這個 – Peyush

+0

的TFH塊看起來它是SQL Azure的,但我敢肯定的重試邏輯適用於任何現代的SQL Server。我始終將它與SQL Azure結合使用,這非常棒。 –