Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel für die Lösung des Problems mit der Beschränkung des Datei-Uploads in ASP.NET Core Mvc

Beispiel für die Lösung des Problems mit der Beschränkung des Datei-Uploads in ASP.NET Core Mvc

高洛峰
高洛峰Original
2016-12-26 10:34:121347Durchsuche

1. Einführung

In ASP.NET Core MVC beträgt die standardmäßige maximale 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 zu steuern 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 in Version 1.0.0 die Aktion kein IFromFile als Parameter festlegt, ist Request.From.Files nicht zugänglich und es wird eine Ausnahme gemeldet.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er zum Lernen aller beiträgt. Ich hoffe auch, dass jeder die PHP-Chinesisch-Website besucht.

Weitere Artikel zur Lösung des ASP.NET Core Mvc-Datei-Upload-Einschränkungsproblems finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn