我們需要在 ConfigureServices方法中添加如下代碼,設(shè)置文件上傳的大小限制為60 MB。
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、微信公眾號(hào)開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、乳山ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的乳山網(wǎng)站制作公司
public void ConfigureServices(IServiceCollection services)
{
services.Configure
{
options.MultipartBodyLengthLimit = 60000000;
});
}
除了上面對(duì)全局進(jìn)行設(shè)置外,我們也可以通過自定義Filter的方式,對(duì)單個(gè)Action進(jìn)行控制,F(xiàn)ilter代碼如下:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, 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 = context.HttpContext.Features;
var formFeature = features.Get
if (formFeature == null || formFeature.Form == null)
{
// Request form has not been read yet, so set the limits
features.Set
}
}
}
因?yàn)锳SP.NET Core MVC中,與之前版本不同的是具體功能被封裝在了各種Feature(特征)中,HttpContext上下文只是能各個(gè)特征進(jìn)行管理的容器。這個(gè)Filter中就只將Action攔截,對(duì)HttpContext中的FormFeature(負(fù)責(zé)表單提交功能)重新進(jìn)行設(shè)置,從而達(dá)到限制具體Action上傳文件大小的目的。