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

首頁 > 編程 > .NET > 正文

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

2024-07-10 13:31:34
字體:
來源:轉載
供稿:網友

一、簡介

在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將不能訪問并且報出異常。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到ASP.NET教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙里县| 北京市| 喀喇| 和平县| 哈巴河县| 开封市| 清水县| 祁门县| 安宁市| 凌源市| 桐梓县| 建水县| 吉林省| 日喀则市| 张家港市| 靖边县| 南川市| 铜山县| 梧州市| 台湾省| 正阳县| 大邑县| 合水县| 孟连| 商洛市| 昔阳县| 尖扎县| 湾仔区| 鄂伦春自治旗| 喜德县| 邢台市| 巩义市| 平阴县| 万荣县| 新丰县| 枣阳市| 贡觉县| 辽宁省| 山西省| 安图县| 九龙县|