1. Einführung
In ASP.NET Core MVC beträgt die standardmäßige maximale Datei-Upload-Datei 20 MB. Wenn wir einige größere Dateien hochladen möchten, wissen wir nicht, wie wir das einrichten sollen. Nicht mehr Wie sollen wir mit Web.Config beginnen?
2. Legen Sie die Upload-Dateigröße fest
1. Einstellungen auf Anwendungsebene
Wir müssen den folgenden Code in der Methode „ConfigureServices“ hinzufügen, um die Datei-Upload-Größe festzulegen auf 60 MB begrenzen.
public void ConfigureServices(IServiceCollection services) { servicesConfigure<FormOptions>(options => { optionsMultipartBodyLengthLimit = 60000000; }); }
2. Einstellungen der Aktionsebene
Zusätzlich zu den oben genannten globalen Einstellungen können wir auch den Filter anpassen, um a Bei einer einzelnen Aktion lautet der Filtercode wie folgt:
[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)); } } }
Denn in ASP.NET Core MVC besteht der Unterschied zu früheren Versionen darin, dass bestimmte Funktionen gekapselt sind Unter den verschiedenen Funktionen ist der HttpContext-Kontext lediglich ein Container, der jede Funktion verwalten kann. In diesem Filter wird nur die Aktion abgefangen und das FormFeature (verantwortlich für die Formularübermittlungsfunktion) im HttpContext zurückgesetzt, um den Zweck zu erreichen, die Größe der von der spezifischen Aktion hochgeladenen Datei zu begrenzen.
3. Fazit
Es schien, als wäre ein Datei-Upload-Fehler entdeckt worden, es wurde jedoch bestätigt, dass er in Version 1.0.1 behoben wurde. Wenn die Aktion in Version 1.0.0 kein IFromFile als Parameter festlegt, ist Request.From.Files nicht zugänglich und es wird eine Ausnahme gemeldet.