Augmenter la taille du fichier de téléchargement Asp.Net de base
Actuellement, je travaille avec Asp.Net de Base et MVC6 besoin de télécharger des fichiers de taille illimitée. J'ai cherché une solution mais toujours pas à obtenir la réponse exacte.
Si vous souhaitez modifier le max du corps de la requête de limite de taille pour un MVC action ou le contrôleur, vous pouvez utiliser le RequestSizeLimit attribut. Les éléments suivants devraient permettre MyAction à accepter le corps de la demande jusqu'à 100 000 000 d'octets.
[HttpPost]
[RequestSizeLimit(100_000_000)]
public IActionResult MyAction([FromBody] MyViewModel data)
{
[DisableRequestSizeLimit] peut être utilisé pour faire une demande de taille illimitée. Cette restitue efficacement pré-2.0.0 comportement vient de l'action attribuée en fonction d'un contrôleur ou d'.
Générique Middleware Instructions
Si la demande n'est pas géré par un MVC action, la limite peut encore être modifiée sur demande à l'aide de la IHttpMaxRequestBodySizeFeature. Par exemple:
MaxRequestBodySize est nullable de long. Le paramètre null désactive la limite comme MVC est [DisableRequestSizeLimit].
Vous ne pouvez configurer la limite de la demande si la demande n'a pas commencé à lire encore, sinon une exception est levée. Il y a un IsReadOnly de la propriété que vous indique si le MaxRequestBodySize propriété est en lecture seule ce qui signifie qu'il est trop tard pour configurer la limite.
Global Configuration Instructions De
Si vous souhaitez modifier le max du corps de la requête de la taille à l'échelle mondiale, ce qui peut être fait par la modification d'un MaxRequestBodySize propriété dans le rappel de UseKestrel ou UseHttpSys. MaxRequestBodySize est nullable long dans les deux cas. Par exemple:
Quel est le plus gros fichier que vous ou quelqu'un d'autre été en mesure de télécharger avec succès avec cela ? Je suis juste curieux, je travaille sur un projet qui va nécessiter de gros téléchargements pour sécuriser les communications. J'ai téléchargé 10 GO de fichiers. Je pense que vous ne serait limitée par le fait d'avoir un max de serveur paramètre de délai d'expiration d'être atteint ou de la mémoire/stockage de fichiers de la limite atteinte en fonction de la façon dont vous diffuser/sauvegarder les fichiers. Dans mon cas, le DisableRequestSizeLimit attribut n'était pas assez. J'ai dû utiliser la RequestFormLimits trop. Comme ceci : [HttpPost("upload"), DisableRequestSizeLimit, RequestFormLimits(MultipartBodyLengthLimit = Int32.MaxValue, ValueLengthLimit = Int32.MaxValue)] Mathew & @Xav987 utilisez-vous le modèle de la liaison avec IFormFile ou de longue haleine chemin de ronde, mentionné ici que pour les gros fichiers: docs.microsoft.com/en-us/aspnet/core/mvc/models/... J'utilise IFormFile. Merci pour le lien.
Vous êtes probablement obtenir un 404.13 code de statut HTTP lorsque vous téléchargez un fichier de plus de 30 MO. Si vous utilisez votre ASP.Net principale application dans IIS, puis l'IIS pipeline est d'intercepter votre demande avant qu'il n'atteigne votre application.
Précédente ASP.Net des applications aussi besoin de cette section, mais il n'est plus nécessaire dans la Base en tant que vos demandes sont traitées par le middleware:
<system.web>
<!-- Measured in kilobytes -->
<httpRuntime maxRequestLength="1048576" />
</system.web>
Vous signifiait probablement de 30 mo, pas de GO Si vous êtes à l'aveuglette copier/coller ci-dessus, <toux> comme je ne ferais jamais, </toux>, n'oubliez pas ceci doit être imbriquée dans la <configuration> élément. blogs.msdn.microsoft.com/azureossds/2016/06/15/...
Dans ASP.NET de Base 1.1 projet créé par Visual Studio 2017, si vous voulez augmenter le téléchargement du fichier la taille. Vous devez créer web.fichier de configuration par vous-même, et d'ajouter ces contenus:
Modifier manuellement le ApplicationHost.fichier de configuration:
Cliquez Sur Démarrer. Dans la zone Rechercher, tapez bloc-notes. Cliquez-droit sur le bloc-notes, puis cliquez sur "Exécuter en tant qu'administrateur".
Sur le menu Fichier, cliquez sur Ouvrir. Dans la zone nom de Fichier, tapez "%windir%\system32\inetsrv\config\applicationhost.config", puis cliquez sur Ouvrir.
Dans le ApplicationHost.config fichier, recherchez le <requestLimits> nœud.
Supprimer la maxAllowedContentLength de la propriété. Ou, ajouter une valeur qui correspond à la taille de la Longueur du Contenu de l'en-tête que le client envoie en tant que partie de la demande. Par défaut, la valeur de la maxAllowedContentLength propriété est 30000000.
Autres réponses résoudre le IIS restriction. Cependant, comme de ASP.NET Core 2.0, Kestrel serveur impose également ses propres limites par défaut.
Github de KestrelServerLimits.cs
Annonce de corps de la requête limite de la taille et de la solution (cité ci-dessous)
MVC Instructions
Si vous souhaitez modifier le max du corps de la requête de limite de taille pour un MVC action ou le contrôleur, vous pouvez utiliser le
RequestSizeLimit
attribut. Les éléments suivants devraient permettreMyAction
à accepter le corps de la demande jusqu'à 100 000 000 d'octets.[DisableRequestSizeLimit]
peut être utilisé pour faire une demande de taille illimitée. Cette restitue efficacement pré-2.0.0 comportement vient de l'action attribuée en fonction d'un contrôleur ou d'.Générique Middleware Instructions
Si la demande n'est pas géré par un MVC action, la limite peut encore être modifiée sur demande à l'aide de la
IHttpMaxRequestBodySizeFeature
. Par exemple:MaxRequestBodySize
est nullable de long. Le paramètre null désactive la limite comme MVC est[DisableRequestSizeLimit]
.Vous ne pouvez configurer la limite de la demande si la demande n'a pas commencé à lire encore, sinon une exception est levée. Il y a un
IsReadOnly
de la propriété que vous indique si leMaxRequestBodySize
propriété est en lecture seule ce qui signifie qu'il est trop tard pour configurer la limite.Global Configuration Instructions De
Si vous souhaitez modifier le max du corps de la requête de la taille à l'échelle mondiale, ce qui peut être fait par la modification d'un
MaxRequestBodySize
propriété dans le rappel deUseKestrel
ouUseHttpSys
.MaxRequestBodySize
est nullable long dans les deux cas. Par exemple:ou
J'ai téléchargé 10 GO de fichiers. Je pense que vous ne serait limitée par le fait d'avoir un max de serveur paramètre de délai d'expiration d'être atteint ou de la mémoire/stockage de fichiers de la limite atteinte en fonction de la façon dont vous diffuser/sauvegarder les fichiers.
Dans mon cas, le
DisableRequestSizeLimit
attribut n'était pas assez. J'ai dû utiliser laRequestFormLimits
trop. Comme ceci :[HttpPost("upload"), DisableRequestSizeLimit, RequestFormLimits(MultipartBodyLengthLimit = Int32.MaxValue, ValueLengthLimit = Int32.MaxValue)]
Mathew & @Xav987 utilisez-vous le modèle de la liaison avec IFormFile ou de longue haleine chemin de ronde, mentionné ici que pour les gros fichiers: docs.microsoft.com/en-us/aspnet/core/mvc/models/...
J'utilise IFormFile. Merci pour le lien.
OriginalL'auteur Matthew Steven Monkan
Vous êtes probablement obtenir un 404.13 code de statut HTTP lorsque vous téléchargez un fichier de plus de 30 MO. Si vous utilisez votre ASP.Net principale application dans IIS, puis l'IIS pipeline est d'intercepter votre demande avant qu'il n'atteigne votre application.
Mise à jour de votre site web.config:
Précédente ASP.Net des applications aussi besoin de cette section, mais il n'est plus nécessaire dans la Base en tant que vos demandes sont traitées par le middleware:
Si vous êtes à l'aveuglette copier/coller ci-dessus, <toux> comme je ne ferais jamais, </toux>, n'oubliez pas ceci doit être imbriquée dans la
<configuration>
élément. blogs.msdn.microsoft.com/azureossds/2016/06/15/...OriginalL'auteur Ashley Lee
Dans ASP.NET de Base 1.1 projet créé par Visual Studio 2017, si vous voulez augmenter le téléchargement du fichier la taille. Vous devez créer web.fichier de configuration par vous-même, et d'ajouter ces contenus:
En Démarrage.cs de fichiers, d'ajouter ces contenus:
OriginalL'auteur haiwuxing
Dans votre site web.config:
Modifier manuellement le ApplicationHost.fichier de configuration:
ApplicationHost.config
fichier, recherchez le<requestLimits>
nœud.Supprimer la
maxAllowedContentLength
de la propriété. Ou, ajouter une valeur qui correspond à la taille de la Longueur du Contenu de l'en-tête que le client envoie en tant que partie de la demande. Par défaut, la valeur de lamaxAllowedContentLength
propriété est 30000000.Enregistrer le
ApplicationHost.config
fichier.OriginalL'auteur Thomas Verhoeven