国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

解決ASP.NET Core Mvc文件上傳限制問題實例

2024-07-10 12:49:33
字體:
來源:轉載
供稿:網友

一、簡介

在ASP.NET Core MVC中,文件上傳的最大上傳文件默認為20MB,如果我們想上傳一些比較大的文件,就不知道怎么去設置了,沒有了Web.Config我們應該如何下手呢?

二、設置上傳文件大小

1.應用程序級別設置

我們需要在 ConfigureServices方法中添加如下代碼,設置文件上傳的大小限制為60 MB。

public void ConfigureServices(IServiceCollection services){  servicesConfigure<FormOptions>(options =>  {    optionsMultipartBodyLengthLimit = 60000000;  });}

2.Action級別設置

除了上面對全局進行設置外,我們也可以通過自定義Filter的方式,對單個Action進行控制,Filter代碼如下:

 [AttributeUsage(AttributeTargetsClass | AttributeTargetsMethod, AllowMultiple = false, Inherited = true)]  public class RequestFormSizeLimitAttribute : Attribute, IAuthorizationFilter, IOrderedFilter  {    private readonly FormOptions _formOptions;    public RequestFormSizeLimitAttribute(int valueCountLimit)    {      _formOptions = new FormOptions()      {        ValueCountLimit = valueCountLimit      };    }    public int Order { get; set; }    public void OnAuthorization(AuthorizationFilterContext context)    {      var features = contextHttpContextFeatures;      var formFeature = featuresGet<IFormFeature>();      if (formFeature == null || formFeatureForm == null)      {        // Request form has not been read yet, so set the limits        featuresSet<IFormFeature>(new FormFeature(contextHttpContextRequest, _formOptions));      }    }  }

因為ASP.NET Core MVC中,與之前版本不同的是具體功能被封裝在了各種Feature(特征)中,HttpContext上下文只是能各個特征進行管理的容器。這個Filter中就只將Action攔截,對HttpContext中的FormFeature(負責表單提交功能)重新進行設置,從而達到限制具體Action上傳文件大小的目的。

三、結語

本來感覺像是發現了一個文件上傳的BUG,已經確認在1.0.1版本中已經進行了修復。在1.0.0版本中,如果Action沒有設置一個IFromFile作為參數,那么Request.From.Files將不能訪問并且報出異常。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 伊川县| 南溪县| 杭州市| 淳安县| 萨迦县| 苍山县| 山阴县| 宣恩县| 泌阳县| 常德市| 桂阳县| 讷河市| 南和县| 延川县| 湖口县| 鞍山市| 文化| 东阿县| 岳普湖县| 旺苍县| 二连浩特市| 漠河县| 腾冲县| 彰化县| 莱芜市| 莆田市| 东宁县| 太保市| 和田县| 侯马市| 宁武县| 右玉县| 乃东县| 兰考县| 沿河| 启东市| 定安县| 敦煌市| 苏州市| 额济纳旗| 东平县|