处理大文件图像上传

时间:2013-07-10 23:36:41

标签: asp.net-mvc asp.net-mvc-4 file-upload upload

在我的asp.net mvc 4网站上,我有一个功能,用户可以通过标准文件上传器上传照片。照片将保存到sql server中的文件表中。

我最近遇到了一个问题,即用户上传非常大的照片,这反过来意味着在渲染图像时会占用带宽。

处理此问题的最佳方法是什么?我可以限制上传文件的大小吗?或者有没有办法减少上传的字节数,同时保持质量?

1 个答案:

答案 0 :(得分:0)

有关maximumRequestLength配置设置以及提供更友好错误的方法,请参阅this post

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方法上载之前调整它们的文件大小。