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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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); } }
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);
}
}
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); } }
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.
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.
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.
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!
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 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??