Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

File upload, fichier trop gros maxRequestLength

4 réponses
Avatar
sabrina.tremblay
Bonjour =E0 tous, voici mon probl=E8me : J'utilise asp.net 2.0, je me
suis fix=E9e un <httpRuntime executionTimeout=3D"3000"
maxRequestLength=3D"11264"/> dans mon web.config pour pouvoir uploader
des fichier de maximum 10mg avec l'objet asp:fileupload. J'aimerais
pouvoir dire =E0 mes utilisateurs lorsqu'ils s=E9lectionnent des fichiers

de plus de 10mg : "Fichier trop volumineux... bla bla bla...". j'ai
m=EAme suivi le conceil de plusieurs et mettre une validation dans le
global.asax :
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As
EventArgs)
Try
Dim i As Integer
'En bite : 10 mg
Dim iMaxFileSize As Integer =3D 10485760
For i =3D 0 To Request.Files.Count - 1
If Request.Files.Item(i).ContentLength > iMaxFileSize
Then
Response.Redirect("redirect.htm")
Exit For
End If
Next
Catch ex As Exception
Response.Redirect("redirect.htm")
End Try
End Sub

Mais lorsqu'il arrive sur Request.Files.Count si le fichier est plus
gros que le size dans le web.config, il plate, l'erreur est catcher par

le try mais il ne fait pas le redirect. Il affiche quand m=EAme :
"Impossible d'afficher la page...". comme lorsqu'il n'y avait aucune
validation dans le beginRequest.


J'ai fouill=E9e autant comme autant sur les forum, sur le support de
microsoft et je n'ai rien trouv=E9 autre que modifier le machin.config
pour qui redirige vers une page g=E9n=E9rique, mais dans mon cas ce n'est

vraiment pas souhaitable =E9tant donn=E9e de notre serveur h=E9berge
d'autre application.=20


Quelqu'un =E0 une id=E9e?????=20
Merci d'avance!

4 réponses

Avatar
Franck Quintana
Bonjour,
Voila qui devrait corriger votre problème.

void Application_Error(object sender, EventArgs e) {
HttpException ex = Server.GetLastError().GetBaseException() as
HttpException;
// Find a way to identify current exception is the "Maximum Request
Length Exceeded."
if (ex != null && ex.ErrorCode == unchecked((int)0x80004005)) { // We
cannot rely on ErrorCode
System.Web.Configuration.HttpRuntimeSection oConfigSection =
(System.Web.Configuration.HttpRuntimeSection)ConfigurationSettings.GetConfig("system.web/httpRuntime");
if (Request.ContentLength > oConfigSection.MaxRequestLength * 1000)
Response.Redirect("error.aspx?msg=" + ex.Message);
}
}


Franck Quintana
Active+ Software
http://www.activeplus.com/
Avatar
Franck Quintana
Bonjour,

En fait votre solution marchait presque.
Vous n'avez qu'à enlever le parcours de Request.Files et utilisez à la
place Request.ContentLength.

Lorsque vous parcourez Request.Files ASP.NET essaye de charger le
contenu du fichier uploadé dans la collection. C'est pour çà que vous
avez une erreur.
Request.ContentLength est une en-tête HTTP, donc vous pouvez la lire
sans problème.

Franck Quintana
Active+ Software
http://www.activeplus.com/
Avatar
Franck Quintana
Re,

Voilà un sample de code :

void Application_BeginRequest(object sender, EventArgs e) {
// Checks that current content length is not greater than fixed limit
(MaxRequestLength)
HttpRuntimeSection oConfigSection =
(HttpRuntimeSection)ConfigurationSettings.GetConfig("system.web/httpRuntime");
int iBytes = oConfigSection.MaxRequestLength * 1024;
if (Request.ContentLength > iBytes) {
ApplicationException oNewEx = new ApplicationException("ERROR");
Response.Redirect("error.aspx?msg=" + oNewEx.Message);
}

Franck Quintana
Active+ Software
http://www.activeplus.com/
Avatar
sabrina.tremblay
Merci beaucoup, par contre, j'ai encore la même erreur (Serveur
introuvable) avec le code suivant :
'En bite : 10 mg
Dim iMaxFileSize As Integer = 11534336
If Request.ContentLength > iMaxFileSize Then
Response.Redirect("redirect.htm")
End If
(qui est en simplifié et en vb le code fourni...)
En debug, il rentre dans le code, exécute le redirect, mais aulieu
d'afficher la page, il me sort encore le serveur introuvable...
Quelqu'un a une idée??

Merci d'avance!