在我的asp.net MVC4网站上,我有一个功能,用户可以通过标准的文件上传工具上传照片。照片被保存到sql server的文件表中。
我最近遇到了一个问题,用户上传非常大的照片,这意味着在渲染图像时带宽会被消耗掉。
处理这个问题的最好方法是什么?是否可以限制上传文件的大小?或者,有没有办法在保持质量的同时减少上传的字节数?
发布于 2013-07-11 13:21:02
有关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方法上传文件之前为它们调整文件大小。
https://stackoverflow.com/questions/17582731
复制相似问题