FileUpload: zu grosse Datei - wie abfangen?

27/02/2009 - 15:41 von Ralf Kaiser | Report spam
Hallo,

wenn ein Benutzer eine Datei mit einem FileUpload hochladen will dann kann
das ja eine vom Webserver geblockt werden wenn die Datei grösser ist als
erlaubt. Dise Grenze kann in der web.config eingestellt werden.

Ich habe in der Lademethode die die Datei laden soll dazu extra eine
Exceptionbehandlung die in einem solchen Fall eine Fehlermeldung einblenden
soll.

Komischerweise wird diese nie angesprungen. Selbst wenn ich zusàtzlich noch
eine Exceptionbehandlung in Page_Load verwende erhalte ich eine Fehlerseite
(vom Webserver, NICHT eine ASP Fehlerseite!) vom Webserver und habe
scheinbar keine Chance diesen Fehler abzufangen und zu behandeln.

Bei dem Server handelt es sich um IIS7 (könnte wichtig sein, denke ich).

Weiss jemand, wie man diesen Fehler abfangen und behandeln kann? Es kann ja
schliesslich immer mal vorkommen, dass ein Benutzer irrtümlich auf eine
falsche, zu grosse, Datei klickt!

Danke schon mal,
Ralf
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
27/02/2009 - 22:10 | Warnen spam
Hallo Ralf,

"Ralf Kaiser" schrieb:

Komischerweise wird diese nie angesprungen. Selbst wenn ich zusàtzlich noch eine Exceptionbehandlung in Page_Load verwende erhalte
ich eine Fehlerseite (vom Webserver, NICHT eine ASP Fehlerseite!) vom Webserver und habe scheinbar keine Chance diesen Fehler
abzufangen und zu behandeln.



Der Fehler wird in Application_Error (global.asax) behandelt. Dort kannst
Du dann auch darauf reagieren. Vorschlàge, wie das Problem zu umschiffen
ist, gibts bei Google zuhauf.

http://www.google.de/search?q=fileu...tion_error

Bei dem Server handelt es sich um IIS7 (könnte wichtig sein, denke ich).



Da hat man mehr Möglichkeiten, die Eintràge bei Google haben aber dennoch meist
das Problem, dass der Workaround nicht funktioniert.

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)

' ggfs. noch einen Methode in der Webform aufrugen
CType( HttpContext.Current.CurrentHandler, <Klasse> ).MachWas( "Fehler beim Upload" )

Server.ClearError()

Response.Clear()
Response.Redirect( "~/Irgendwo.aspx", True )
Response.End()

End Sub

Alternativ kannst Du auch Page_Error

Private Sub Upload_Error( ... ) Handles Me.Error

Server.ClearError()

...
'Response.Write( "Fehler beim Upload" )

End Sub

in der Page behandeln. Dabei habe ich allerdings den Effekt, dass die Controls
nicht mehr gerendert werden. Kann aber sein, dass man das noch irgendwie anders
handhaben kann.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen