小編給大家分享一下如何解決ASP.NET Core中Mvc文件上傳限制的問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
一、簡介
在ASP.NET Core MVC中,文件上傳的較大上傳文件默認(rèn)為20MB,如果我們想上傳一些比較大的文件,就不知道怎么去設(shè)置了,沒有了Web.Config我們應(yīng)該如何下手呢?
二、設(shè)置上傳文件大小
1.應(yīng)用程序級別設(shè)置
我們需要在 ConfigureServices方法中添加如下代碼,設(shè)置文件上傳的大小限制為60 MB。
public void ConfigureServices(IServiceCollection services) { servicesConfigure<FormOptions>(options => { optionsMultipartBodyLengthLimit = 60000000; }); }
2.Action級別設(shè)置
除了上面對全局進(jìn)行設(shè)置外,我們也可以通過自定義Filter的方式,對單個Action進(jìn)行控制,F(xiàn)ilter代碼如下:
[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上下文只是能各個特征進(jìn)行管理的容器。這個Filter中就只將Action攔截,對HttpContext中的FormFeature(負(fù)責(zé)表單提交功能)重新進(jìn)行設(shè)置,從而達(dá)到限制具體Action上傳文件大小的目的。
以上是“如何解決ASP.NET Core中Mvc文件上傳限制的問題”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
文章題目:如何解決ASP.NETCore中Mvc文件上傳限制的問題-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://chinadenli.net/article20/dcpcco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、軟件開發(fā)、營銷型網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容