通过WebApi将文件上传到服务器会为大于1mb的文件提供例外

时间:2016-09-19 09:19:18

标签: c# file cordova asp.net-web-api cordova-plugins

我正在通过WebApi将文件上载到服务器,它适用于以KB为单位的小文件,但对于Mbs中的文件,它提供异常

例外:

在HttpRequest.GetBufferedInputStream的调用者填充内部存储之前,访问了BinaryRead,Form,Files或InputStream。

我试过在Web.config gut中增加最大请求长度它是没用的

 <httpRuntime maxRequestLength="2097151"/>


  <security>
      <requestFiltering>
        <!-- 50MB in bytes, default is 30000000 or approx. 28.6102 Mb-->
        <!--<requestLimits maxAllowedContentLength="300000000" />-->
        <requestLimits maxAllowedContentLength="700000000" />
      </requestFiltering>
    </security>

我使用FileTransfer Cordova plugin

从cordova app发送文件

客户端代码:

    var options = new FileUploadOptions();
                options.mimeType = "image/jpeg";

   var ft = new FileTransfer();
   ft.upload($scope.fileSource, encodeURI(serverUrl), win, fail, options);

服务器端代码:

     public class UserFileController : BaseApiController
        {
            public HttpResponseMessage Post()
            {  
                var request = HttpContext.Current.Request; 
                if(request.Files.Count>0)
                {
                    var fileName = String.Format("{0}.{1}", Guid.NewGuid(), "jpg");
                    SaveFile(request.Files[0], fileName); 
}
}
}

0 个答案:

没有答案