Maison >développement back-end >Tutoriel C#.Net >Exemple de résolution du problème de restriction de téléchargement de fichiers ASP.NET Core Mvc
1. Introduction
Dans ASP.NET Core MVC, la taille maximale par défaut du fichier de téléchargement est de 20 Mo. Si nous souhaitons télécharger des fichiers plus volumineux, nous ne savons pas comment le configurer. Pas plus. Comment devrions-nous commencer avec Web.Config ?
2. Définir la taille du fichier de téléchargement
1. Paramètres au niveau de l'application
Nous devons ajouter le code suivant dans la méthode ConfigureServices pour définir la taille de téléchargement du fichier. limite à 60 Mo.
public void ConfigureServices(IServiceCollection services) { servicesConfigure<FormOptions>(options => { optionsMultipartBodyLengthLimit = 60000000; }); }
2. Paramètres du niveau d'action
En plus des paramètres globaux ci-dessus, nous pouvons également personnaliser le Filtre, pour contrôler un simple Action, le code du filtre est le suivant :
[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)); } } }
Parce que dans ASP.NET Core MVC, la différence par rapport aux versions précédentes est que des fonctions spécifiques sont encapsulées Parmi les différentes fonctionnalités, le contexte HttpContext n'est qu'un conteneur pouvant gérer chaque fonctionnalité. Dans ce filtre, seule l'action est interceptée et la FormFeature (responsable de la fonction de soumission de formulaire) dans HttpContext est réinitialisée pour atteindre l'objectif de limiter la taille du fichier téléchargé par l'action spécifique.
3. Conclusion
Il semble qu'un bug de téléchargement de fichiers ait été découvert, mais il a été confirmé qu'il a été corrigé dans la version 1.0.1. Dans la version 1.0.0, si l'action ne définit pas un IFromFile comme paramètre, Request.From.Files ne sera pas accessible et une exception sera signalée.
Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun. J'espère également que tout le monde visitera le site Web PHP chinois.
Pour plus d'articles sur la résolution du problème de restriction de téléchargement de fichiers ASP.NET Core Mvc, veuillez faire attention au site Web PHP chinois !