2016-07-15 31 views
3

Ich mache ASP.NET Core Web-Anwendung, und ich lade PDF-Datei über HttpContext von Javascript-Datei. Also, wenn ich versuche, Datei auf der Serverseite zu laden, mit Request.Form.File, wirft Formular eine Ausnahme vom Typ System.IO.InvalidDataException. Formular Nachricht sagt: "Multipart Körperlänge Grenze 16384 überschritten". Ich habe versucht, die Datei web.config zu bearbeiten, um dieses Limit zu erhöhen, aber die Nachricht ist immer die gleiche. Gibt es etwas, das ich vermisse oder ich sehe auf der falschen Seite?Request.Form löst Ausnahme

Danke.

+0

Haben Sie versucht, die MultipartBodyLengthLimit innen Form Options Einstellung? – sabkaraja

+0

http://StackOverflow.com/a/38360093/1184056 –

+0

Wie groß ist die Datei, die Sie hochladen? –

Antwort

2

definieren dieses Attribut:

[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<IFormFeature>(); 

     if (formFeature == null || formFeature.Form == null) 
     { 
      // Request form has not been read yet, so set the limits 
      features.Set<IFormFeature>(new FormFeature(context.HttpContext.Request, _formOptions)); 
     } 
    } 
} 

Und dieses Attribut auf Ihre Aktion-Methode hinzufügen, sehen, was passiert:

[RequestFormSizeLimit(valueCountLimit: 2147483648)] 
[HttpPost] 
public IActionResult ActionMethod(...) 
{ 
    ... 
} 
+0

@ Illuminati, es ist die benutzerdefinierte Klasse, die er darüber geschrieben hat. – tylerjgarland