如何在以base64字符串上载超过7mb的图像时防止500(内部服务器错误)

b09cbbtk  于 2021-09-29  发布在  Java
关注(0)|答案(1)|浏览(189)

我正试图上传超过7mb大小的图像,在点击服务器端操作方法“500内部服务器错误”之前,低于7mb的图像很容易上传。
下面我将以angular格式将文件序列化为base64字符串。

$scope.UploadSysFiles = function (event){
  var file = event.target.files;
  var reader = new FileReader();
  reader.readAsDataURL(file[0]);
  reader.onload = () => {
      $scope.SysFileByteCode = reader.result;
  };
  $scope.SysFiles = file[0];
}

并将所有值存储在一个对象中,以便发送到服务器端类对象,如下所示

$scope.SystemAccesories[rowIndex] = {};
$scope.SystemAccesories[rowIndex].ManualFile = $scope.SysFileByteCode;
$scope.SystemAccesories[rowIndex].FileName = $scope.SysFiles.name;
$scope.SystemAccesories[rowIndex].FileSize = $scope.SysFiles.size;
$scope.SystemAccesories[rowIndex].ContentType = $scope.SysFiles.type;
$scope.SystemAccesories[rowIndex].IsManualFileAvailable = true;

现在发送到服务器端,如下所示

$http({
       method: 'POST',
       url: 'http://localhost:*****/Accesories/UpdateAccesories',
       data: { objSystemAccesories: $scope.SystemAccesories},
       headers: { 'content-type': 'application/json' }
     }).then(function (response) {
     //after get success, further steps
    }
});

在后端,我创建了一个对象类文件,并在action方法中获取值,如下所示

public class SystemAccessories
{
 public string ManualFile { get; set; }
 public string FileName { get; set; }
 public string FileSize { get; set; }
 public string ContentType { get; set; }
 public Nullable<bool> IsManualFileAvailable{ get; set; }
}

[HttpPost]
public ActionResult UpdateAccesories(SystemAccesories objSystemAccesories)
{
 //deserialize to byte array annd upload code
}

我已经更新了 web.config 按下面的代码归档

<system.web>
<httpRuntime targetFramework="4.6.1" maxRequestLength="2147483647" executionTimeout="3600" requestLengthDiskThreshold="2147483647"/>   
</system.web>
  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="2147483647"></requestLimits>
      </requestFiltering>
    </security>
  </system.webServer>
  <system.web.extensions>
    <scripting>
      <webServices>
        <jsonSerialization maxJsonLength="50000000"/>
      </webServices>
    </scripting>
  </system.web.extensions>

但仍然得到相同的问题,没有变化

cigdeys3

cigdeys31#

在里面 web.config 还有一行要添加 <appSettings> ```

然后是这个
https://stackoverflow.com/a/41575205/4728451

相关问题