2010-10-26 3 views
4

Dans mon web.config, j'ai la taille de téléchargement de fichiers limité à 10 Mo:Gestion des fichiers téléchargés avec une taille supérieure à maxRequestLength dans web.config

<httpRuntime maxRequestLength="10000" /> <!-- file size limit in KB --> 

Sur ma page, je vérifie pour voir que l'utilisateur n'a pas télécharger un fichier de plus de 5 MB:

protected void cvImageSize_ServerValidate(object source, ServerValidateEventArgs args) 
{ 
    args.IsValid = (fupFile.PostedFile.InputStream.Length <= 5000000); 
} 

Si un utilisateur essaie de télécharger un fichier de 3 Mo, il télécharge bien. Si un utilisateur essaie de télécharger un fichier de 7 Mo, le message d'erreur de cvImageSize lui est présenté.

Si un utilisateur essaie de télécharger un fichier de 13 Mo ... le site se bloque. Je ne sais pas exactement ce qui se passe, Firefox me donne la page disant « La connexion a été réinitialisée. La connexion au serveur a été remis à zéro alors que la page chargeait. »

est-il une exception que je peux attraper quand le l'utilisateur essaie de télécharger un fichier avec une taille supérieure à la valeur maxRequestLength? Je voudrais montrer à l'utilisateur un message d'erreur sur la page au lieu de l'écrasement du site.

+3

http://stackoverflow.com/questions/3007737/how-can-i-handle-maxrequestlength-exceptions-elegantly http : //stackoverflow.com/questions/2756448/how-to-catch-configurationerrorsexception-for-violating-maxrequestlength http://stackoverflow.com/questions/1502371/how-can-you-know-that-current-request- beyond-maxrequestlength-in-asp-net – Carson63000

+0

Si l'une des réponses vous aide avec votre problème s'il vous plaît marquer le pertinent comme la réponse –

Répondre

0

Votre problème de base est que la "validation" (cvImageSize_ServerValidate) se produit réellement sur le serveur. Cela signifie que le fichier doit être téléchargé en premier pour que votre code côté serveur puisse être validé. Par conséquent, lorsqu'un fichier volumineux (le paramètre web.config) est téléchargé, le serveur génère une exception et votre code n'a jamais la possibilité de valider. Peu importe comment vous le faites, l'utilisateur devra tout d'abord télécharger le fichier sur votre serveur d'abord pour le serveur de se plaindre ou pour vous de valider la taille.

Sauf si vous êtes en mesure d'utiliser Html5 (et les navigateurs compatibles) Html5 File Upload with Progress

Questions connexes