在我的asp.net mvc 4网站上,我有一个功能,用户可以通过标准文件上传器上传照片。照片将保存到sql server中的文件表中。
我最近遇到了一个问题,即用户上传非常大的照片,这反过来意味着在渲染图像时会占用带宽。
处理此问题的最佳方法是什么?我可以限制上传文件的大小吗?或者有没有办法减少上传的字节数,同时保持质量?
答案 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方法上载之前调整它们的文件大小。