【问题标题】:handling large file image upload处理大文件图片上传
【发布时间】:2013-07-09 02:18:56
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

    请参阅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 方法在上传之前为它们调整文件大小。

    【讨论】:

      猜你喜欢
      • 2012-04-17
      • 1970-01-01
      • 1970-01-01
      • 2013-10-16
      • 1970-01-01
      • 2017-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多