首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >.net核心2.0文件上载大小限制

.net核心2.0文件上载大小限制
EN

Stack Overflow用户
提问于 2018-06-02 16:50:53
回答 2查看 10.3K关注 0票数 12

我在.net核心2.0MVCWeb应用程序中上传大文件时遇到了问题。

我看过像这样的文章,它展示了如何在.net核心2.0中增加文件大小限制:Increase upload request length limit in Kestrel

因此,按照这个示例,我已经尝试了这两种方法。目前,我的Program.cs中有以下内容:

代码语言:javascript
复制
        public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseKestrel(options => options.Limits.MaxRequestBodySize = null)
            .Build();

..。我在控制器上的ajax文件上传方法如下所示:

代码语言:javascript
复制
    [HttpPost]
    [RequestSizeLimit(1_074_790_400)]
    [Route("api/article/uploadfile/{mediaType}")]
    public async Task<IActionResult> UploadFile(string mediaType)

我正在使用Request.Form.Files访问上传的文件

视图上的javascript如下所示:

代码语言:javascript
复制
$('#upload-videos').change(function () {
    var files = $("#upload-videos").get(0).files;
    uploadMedia(false, files);
})

function uploadMedia(isPhoto, files) {
    var type;
    if (isPhoto) {
        type = "i";
    }
    else {
        type = "v";
    }

    var data = new FormData();
    if (files.length > 0) {
        for (idx = 0; idx < files.length; idx++) {
                data.append("fileImage" + idx, files[idx]);
        }

        $.ajax({
            url: "/api/article/uploadfile/" + type,
            type: "POST",
            processData: false,
            contentType: false,
            dataType: false,
            data: data,
            success: function (jsonData) {
                refreshUploadedImages(jsonData, isPhoto);
            }
        });
    }
}

问题是,即使增加了上传限制的更改,我也得到了响应:

无法加载资源:服务器响应状态为500 ()

如果我在控制器方法的第一行放了一个断点,它永远不会命中它,所以这段代码看起来不是问题。

小文件一切正常,但当我尝试上传一个538,286 KB的文件时,它将失败。

有人能帮上忙吗?

更新:关于更多信息,当上传文件大小在122,211 KB和137,840 KB之间时,无论RequestSizeLimit设置如何,似乎都会出现问题,并且错误始终如一。

更新2:我刚刚将所有.net核心和所有.net核心nuget包更新到2.1,但问题仍然存在。

EN

回答 2

Stack Overflow用户

发布于 2018-06-03 05:27:44

为了帮助其他人解决同样的问题,我在这里找到了答案:Max upload size for ASP.MVC CORE website

结果是,您需要像这样删除正文长度限制:

代码语言:javascript
复制
services.Configure<FormOptions>(x => x.MultipartBodyLengthLimit = 1_074_790_400);

可以在Microsoft.AspNetCore.Http.Features名称空间中找到FormOptions

票数 9
EN

Stack Overflow用户

发布于 2019-04-24 01:42:36

为了解决这个问题,你可以使用下面的代码

DisableRequestSizeLimit

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50655147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档