.NET Core MVC 解除上传文件大小限制

16 篇文章 0 订阅

今天在做文件上传的时候发现超过30M的文件,请求会报404的错误,需要解除这个限制

由于.net core没有webconfig文件

我们需要在startup和program两个地方设置

第一步在program文件中添加如下代码:

        public static IHostBuilder CreateHostBuilder(string[] args) =>//创建默认builder-会完成各种配置
            Host.CreateDefaultBuilder(args)
                .ConfigureLogging((Context, loggingBuillder) =>
                {
                    //loggingBuillder.AddFilter("System", LogLevel.Error);//过滤掉命名空间
                    //loggingBuillder.AddFilter("Microsoft", LogLevel.Error);
                    //loggingBuillder.AddLog4Net();//使用Log4Net
                })//扩展日志
                .ConfigureWebHostDefaults(webBuilder =>//指定一个web服务器--Kestrel
                {
                    webBuilder.UseKestrel(options =>
                    {
                        options.Limits.MaxRequestBodySize = int.MaxValue; //接触文件上传限制 2020年4月30日13:03:00 Dennyhui
                    }
                    );
                    //webBuilder.UseUrls("http://*:5001");
                    webBuilder.UseStartup<Startup>();//就是跟MVC流程串起来
                });

第二步在startup文件夹添加如下代码:

/解决文件上传大小限制 2020年4月30日13:02:51 Dennyhui
            services.Configure<FormOptions>(x =>
            {
                x.ValueLengthLimit = int.MaxValue;
                x.MultipartBodyLengthLimit = int.MaxValue;
                x.MemoryBufferThreshold = int.MaxValue;
            });

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在ASP.Net Core MVC上传文件,可以使用以下步骤: 1. 在视图中添加一个表单,包含一个文件输入控件: ```html <form method="post" enctype="multipart/form-data"> <div class="form-group"> <label for="file">选择文件:</label> <input type="file" name="file" id="file" class="form-control-file" /> </div> <button type="submit" class="btn btn-primary">上传</button> </form> ``` 2. 在控制器中添加一个动作方法,用于接收上传的文件: ```csharp [HttpPost] public async Task<IActionResult> Upload(IFormFile file) { if (file == null || file.Length == 0) { return BadRequest("请选择文件"); } using (var stream = new MemoryStream()) { await file.CopyToAsync(stream); // 处理上传的文件 // ... return Ok("上传成功"); } } ``` 3. 在Startup.cs文件的ConfigureServices方法中添加文件上传服务: ```csharp services.AddMvc(options => { options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute()); // 添加防伪标记,防止跨站攻击 }).AddRazorPagesOptions(options => { options.Conventions.AddPageRoute("/Index", ""); }) .AddNewtonsoftJson(); // 添加NewtonsoftJson,用于序列化JSON services.AddControllersWithViews(); // 添加控制器和视图 services.AddRazorPages(); // 添加Razor页面 services.AddAntiforgery(); // 添加防伪标记,防止跨站攻击 services.Configure<IISServerOptions>(options => { options.AllowSynchronousIO = true; // 允许同步IO }); services.Configure<FormOptions>(options => { options.MultipartBodyLengthLimit = long.MaxValue; // 设置允许上传的最大文件大小 }); ``` 以上就是在ASP.Net Core MVC上传文件的步骤。需要注意的是,要添加防伪标记,防止跨站攻击;要设置允许上传的最大文件大小

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值