Heim > Backend-Entwicklung > C#.Net-Tutorial > 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

高洛峰
Freigeben: 2016-12-10 09:14:35
Original
1757 Leute haben es durchsucht

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;
  });
}
Nach dem Login kopieren

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));
     }
   }
 }
Nach dem Login kopieren

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.


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage