Frage

Ich habe eine Datei input-Tag in meinem Web-App. Ich möchte überprüfen, ob die Datei vor dem Senden an den Server nicht zu groß ist. Natürlich habe ich Seite noch Validierungsserver. Gibt es eine Möglichkeit, dies mit JavaScript zu tun? Es muss in IE7 + und FF3 + arbeiten. Danke.

EDIT: somefileinputobject.files [0] .filesize in FF funktioniert, aber nicht IE

.
War es hilfreich?

Lösung

Es ist ein schwieriges Problem. Sie haben es zu tun mit AJAX, und verwenden Sie die Dateigröße Header vom Browser an den Server auf der POST-Anforderung gesendet.

Yahoo UI-Bibliothek hat ein Tool dabei zu helfen. YUI Uploader

Andere Tipps

Javascript kann dies nicht tun. Es würde ernsthafte Sicherheitsprobleme haben. Vielleicht wenn Blitz kann.

Kann nicht zuverlässig mit Javascript für alle Browser durchgeführt werden, aber man kann die Gesamtgröße der gebuchten Daten aus dem web.config

begrenzen

Kurze Antwort:. Nein, diese auf dem Server umgehen sollte

Lange Antwort: Nicht zuverlässig. Mit IE könnten Sie so etwas wie:

function checkSize(filespec) {
var fso, f, s;
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.GetFile(filespec);
s = f.size;
// Do something with var s
}

Das kann aber leicht durch den Browser-Sicherheitseinstellungen comprimised werden oder die Verwendung eines anderen Browsers oder Plattform.

Sie haben wirklich nicht eine Menge von Optionen, wenn Sie die traditionelle Datei Eingabesteuerung verwenden. Sie können es nicht auf der Clientseite überprüfen und es wird Ihre konfiguriert maxRequestLength treffen, bevor Sie die Möglichkeit, es Server-Seite zu überprüfen. Sie können die Ausnahme abfangen, die auftritt, wenn die maxRequestLength obwohl überschritten wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top