2013-07-10 66 views
0

在我的asp.net mvc 4站點上,我有一個功能,用戶可以通過標準文件上傳器上傳照片。照片被保存到sql server中的文件表中。處理大文件圖像上傳

我最近遇到了一個問題,用戶上傳非常大的照片,這反過來意味着圖像呈現時帶寬被吃掉。

處理這個問題的最佳方法是什麼?我可以限制正在上傳的文件的大小嗎?還是有一種方法可以減少上傳的字節數,同時保持質量?

回答

0

參考this post爲maximumRequestLength配置設置和方式,以提供更友好的錯誤

This question and answer may also be helpful

您也可以上傳,以便它甚至沒有獲得前檢查JavaScript中的文件的大小發送到服務器,如果實在是太大了(檢查下面的代碼,任何大於15MB):

if(Math.floor(file.size/1024 /1024) >= 15) 
{ 
    alert('File size is greater than maximum allowed. Please make sure that the file is smaller than 15 MegaBytes.' ); 
    return false; 
} 

或者,你可以使用WebImage.Resize()調整Ø服務器端該文件已被上傳。它在上傳過程中不會對帶寬有所幫助,但會使後續下載速度更快。縮小圖像會導致質量損失,但一般來說它做得很好,只要確保選擇了保持高寬比以防止失真的選項即可。

至於減少上傳之前的字節沒有任何我知道要在瀏覽器中做到這一點。您可以提供一個單獨的客戶端應用程序,它將在上傳之前使用您的應用程序中的WebImage.Resize方法調整文件的大小。