【问题标题】:Limited File upload size with WebApi使用 WebApi 限制文件上传大小
【发布时间】:2015-08-16 08:20:18
【问题描述】:

我有一个简单的 WebApi,我可以使用它上传文件。下面是它的简单代码

    [HttpPost]
    public async Task<bool> UploadSingleFile()
    {
        bool isSuccess = false;

        try
        {
            var streamProvider = new MultipartFormDataStreamProvider("D:\\");
            await Request.Content.ReadAsMultipartAsync(streamProvider);
            isSuccess = true;
        }
        catch (Exception ex)
        { }
        return isSuccess;
    }

我在表单提交中调用它从 HTML &lt;form&gt; 标记使用波纹管代码

<form enctype="multipart/form-data" method="post" action="http://localhost:4952/api/UploadApi/UploadSingleFile" id="ajaxUploadForm" novalidate="novalidate">
<ol>
    <li>
        <input type="file" name="file" id="fileInput">
    </li>
    <li>
        <input type="button" id="ajaxUploadButton" class="btn">
    </li>
</ol>
</form>

我可以使用上面的代码上传任何大小的文件。但是如果我使用 Javascript ajax 调用相同的 API,API 操作方法会抛出错误,指出文件大小超过了最大大小。

$('#ajaxUploadButton').click(function () {

    var data, xhr;

    data = new FormData();
    data.append('file', $('#fileInput')[0].files[0]);

    xhr = new XMLHttpRequest();

    xhr.open('POST', 'http://localhost:4952/api/UploadApi/UploadSingleFile', true);
    xhr.onreadystatechange = function (response) { };
    xhr.send(data);

})

那么为什么 ajax 不能发布大文件呢?两个代码集中实际发生了什么?

【问题讨论】:

    标签: javascript ajax html asp.net-web-api


    【解决方案1】:

    此设置在您的 web.config 中

    <configuration>
      <system.web>
        <httpRuntime maxRequestLength="xxx" />
      </system.web>
    </configuration>
    

    默认为 4 MB。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-23
      • 2011-01-29
      • 2017-03-09
      • 2011-01-13
      • 1970-01-01
      • 2022-10-26
      • 1970-01-01
      • 2010-09-23
      相关资源
      最近更新 更多