我正在通过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);
}
}
}