ASP.NET Core 2.0中,解決大文件上傳配置問題

   在.net core2.0中,當上傳文件大於30MB時,會報出: 服務器上的請求篩選被配置爲拒絕該請求,因爲內容長度超過配置的值的問題。

  針對此問題的解決思路如下:

  1)、在Startup.cs中增加如下代碼:

   public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
            //配置文件大小限制 1GB
            services.Configure<FormOptions>(options =>
            {
                options.ValueLengthLimit = 1073741824; 
                options.MultipartBodyLengthLimit = 1073741824;
            });

      //........

  }

2)、在具體的方法前增加如下代碼:

      /// <summary>
        /// 上傳附件
        /// </summary>
        /// <returns></returns>
        [RequestSizeLimit(1073741824)]
        [HttpPost]
        [Route("FileUpLoad")]
        public ActionResult<IEnumerable<string>> UpLoadFile([FromForm]IFormCollection formCollection, string projectId, string stage_id)
        {

          //.......       

       }

3)、在項目中增加web.config文件,具體代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <!-- 1 GB -->
        <requestLimits maxAllowedContentLength="1073741824" />
      </requestFiltering>
    </security>
  </system.webServer>

</configuration>

通過以上的三個步驟即可解決系統中報報出的問題:請求篩選模塊被配置爲拒絕超過請求內容長度的請求, 這是一項安全功能。請不要更改此功能,除非您完全清楚更改的影響範圍。您可以配置 IIS 服務器以拒絕內容長度大於指定值的請求。如果請求的內容長度大於所配置的長度,便會返回此錯誤。如果需要增加內容長度

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章