Salut solution mentionnée par Damien McGivern, ne fonctionne que sur IIS6,
Il ne fonctionne pas sur IIS7 et le serveur de développement ASP.NET. J'obtiens une page affichant "404 - Fichier ou répertoire non trouvé".
Des idées ?
EDIT :
Je l'ai... Cette solution ne fonctionne toujours pas sur ASP.NET Development Server, mais j'ai trouvé la raison pour laquelle elle ne fonctionnait pas sur IIS7 dans mon cas.
En effet, IIS7 dispose d'un système intégré d'analyse des demandes qui impose un plafond pour les fichiers à télécharger, fixé par défaut à 30000000 octets (soit un peu moins de 30 Mo).
J'ai essayé de télécharger un fichier de 100 Mo pour tester la solution mentionnée par Damien McGivern (avec maxRequestLength="10240", c'est-à-dire 10 Mo dans web.config). Maintenant, si je télécharge le fichier d'une taille > 10MB et < 30 MB, la page est redirigée vers la page d'erreur spécifiée. Mais si la taille du fichier est > 30 Mo, la page d'erreur intégrée laide s'affiche et indique "404 - File or directory not found".
Pour éviter cela, vous devez donc augmenter la longueur maximale autorisée du contenu de la requête pour votre site Web dans IIS7. Cela peut être fait en utilisant la commande suivante,
appcmd set config "SiteName" -section:requestFiltering -requestLimits.maxAllowedContentLength:209715200 -commitpath:apphost
J'ai fixé la longueur maximale du contenu à 200 Mo.
Après avoir effectué ce réglage, la page est redirigée avec succès vers ma page d'erreur lorsque j'essaie de télécharger un fichier de 100 Mo.
Référez-vous, http://weblogs.asp.net/jgalloway/archive/2008/01/08/large-file-uploads-in-asp-net.aspx pour plus de détails.
5 votes
Quelqu'un a-t-il essayé cela avec MVC ? Je semble être en mesure d'attraper l'exception de la bonne manière, mais je suis incapable de l'arrêter : chaque fois que j'essaie de rendre une page d'erreur, la même exception se produit.
0 votes
Ce message d'erreur est envoyé par IIS avant d'atteindre le contrôleur. Pour informer l'utilisateur que le fichier dépasse la limite maximale de téléchargement (définie dans votre configuration web), vous pouvez valider directement la taille du fichier via JS avec un événement onchange. Par exemple
<input type="file" id="upload" name="upload" onchange="showFileSize();" />
À l'intérieur deshowFileSize()
vous pouvez afficher un message d'erreur basé sur la taille de votre fichier viavar input = document.getElementById("upload"); var file = input.files[0];
et ajouter une balise html.