2009-05-01 8 views
3

Ich benutze ASP.net mit VB.NET. Gibt es einen Validator, mit dem ich die Größe des hochgeladenen Bildes prüfen kann? Was muss ich sonst im Code tun, um sicherzustellen, dass der Benutzer keine Bilder mit mehr als 1 MB hochlädt?Der beste Weg, um sicherzustellen, dass der Benutzer keine Bilder mehr als 1 MB in der Größe hochladen

ps C# -Code wird auch tun, kann ich einen Konverter zu VB.NET verwenden

EDIT

Aus irgendeinem Grund, wenn ich die maxRequestLength bis 1024 (in meinem web.config) ändern und ich lade ein Bild mit der Größe 1.25mb hoch, dann bekomme ich die Microsoft Error-Seite mit der Aufschrift "Internet Explorer kann die Webseite nicht anzeigen". Und ich habe einen Try Catch-Block in meiner Submit-Schaltfläche. Wenn ich die maxRequestLength aus meiner Web.config entferne, funktioniert es gut.

+0

Die gleiche Frage wurde bereits hier gepostet: http://stackoverflow.com/questions/158149/how-do-you-restrict-the-size-of-a-file-being-uploaded-with-javascript-or -java-w –

+0

Es ist eine ähnliche Frage, aber das ist für Java. ASP.NET hat einen anderen Mechanismus. – BobbyShaftoe

+0

Yip ich sah auch diese Frage, bevor ich meins, Danke Bobby !! – Etienne

Antwort

4

Dies wird letztlich in Web.config behandelt. Suchen Sie nach der Httpruntime Abschnitt:

<httpRuntime 
executionTimeout="110" 
maxRequestLength="4096" 
/> 

Es gibt viele andere Einstellungen in Httpruntime, aber diese sind die beiden, die relevant sind. Hier wird die maxRequestLength auf 4096 oder 4 KB (die Anzahl ist in Bytes) gesetzt. Legen Sie diesen Wert entsprechend fest. Außerdem sollten Sie das executionTimeout auch entsprechend einstellen, damit es eine angemessene Zeit zum Hochladen gibt, was immer Sie hochladen möchten.

+0

Für den Fall, dass der Upload über diese Größe hinausgeht, wird ASP.net die Anfrage jedoch nicht verarbeiten. –

+0

@Saint was könnte eine gute Sache sein, nicht DDOS'd von jemandem Upload Gigabyte-Dateien von Hunderten von Clients erhalten;) –

+0

Ich habe dies schon aus irgendeinem Grund versucht, wenn ich die maxRequestLength auf 1024 ändern und ich ein Bild mit der Größe 1,25 hochladen mb dann bekomme ich die Microsoft Error Seite mit der Aufschrift "Internet Explorer kann die Webseite nicht anzeigen" ......... und ich habe einen Try Catch Block innerhalb meiner Submit Taste ..... – Etienne

2

Sie können den folgenden Code verwenden, um die Größe [in KB] der hochgeladenen Datei zu bestimmen. Sobald Sie die Größe kennen, können Sie leicht entscheiden, ob Sie mit der Datei fortfahren oder den Upload ablehnen möchten.

Request.Files(0).ContentLength/1024 
+0

Ja, aber die maximale Größe, die ich glaube, ist kleiner als 1MB, so dass Sie immer noch mit Web.config beschäftigen müssen. – BobbyShaftoe

0

Der Web-Seitenfehler kann nicht angezeigt werden, da ASP.NET die Verbindung für übergroße Anforderungen zur Minderung von DOS-Angriffen aufgrund übergroßer Anforderungen unterbricht. Um dies zu umgehen, müssten Sie den Upload in einem iframe durchführen und dann feststellen, ob ein Fehler aufgetreten ist oder nicht. Sie können auch eine Flash-, Silverlight-, Java oder ActiveX-Uploader-Komponente verwenden, die auf dem Client installiert ist, um die Dateigröße auf der Clientseite zu überprüfen. Dies erfordert jedoch eine Installation, die von Ihrer Lösung abhängig ist.

Verwandte Themen