4 Stimmen

Gibt es eine Möglichkeit, die Dateigröße vor dem Hochladen zu bestimmen?

Wir haben also dieses Problem. Ein Benutzer geht eine Datei hochladen, und wenn es über 10MB, es nur eine Art von Zeiten aus der Seite, und löscht, und kein guter Fehler wird geworfen, um zu beschreiben, was passiert ist. Idealerweise würden wir gerne die Dateigröße überprüfen, wenn der Benutzer die Datei auswählt, die er hochladen möchte, aber ich weiß nicht, ob das überhaupt möglich ist. Unser Framework ist mit ASP.NET, VB.NET und Javascript (und ExtJS 3.0) aufgebaut und läuft im IE.

Wie kann man das machen?

4voto

David Neale Punkte 15770

Ich glaube nicht, dass es eine Möglichkeit gibt, dies mit Standard-HTML-Formularen zu tun.

Werfen Sie einen Blick auf SWFUpload . So können Sie die Dateigröße kontrollieren.

3voto

Brian Punkte 24901

Der nachstehende Code funktioniert in Firefox und Chrome, aber im IE und in Opera wird die Prüfung nicht durchgeführt. Ich denke, im IE müssen Sie ein ActiveXObject verwenden. Entnommen und leicht verändert aus aquí .

<script type="text/javascript">
var clicked = false;
function checkSize() {
var node = document.getElementById('file');
var check = node.files[0].fileSize;
if (check > 4096)
{
alert('Your file is too big!');
 return false;
}
}
</script>

<form enctype="multipart/form-data" action="upload_file.php" method="post" class="body">
Select a file: <input type='file' id='file' name='file'>
 <input type='submit' value=' Upload File ' onClick='return checkSize()'> 
</form>

2voto

Marko Punkte 69929

Sie können das Limit in der Webkonfiguration festlegen, die Eigenschaft heißt MaxRequestLength.

Stellen Sie ihn in der web.config im Abschnitt httpRuntime ein:

<httpRuntime executionTimeout="90" maxRequestLength="4096" /> <-- number of bytes

Dies sollte eingefügt werden unter <system.web>

Um die Größe der Datei zu überprüfen, ist es so einfach wie

If txtFileUpload.PostedFile.ContentLength > 1024 Then <-- bytes

1voto

David Murdoch Punkte 85120

Können Sie ActiveXObject verwenden oder haben Sie es bereits versucht?

Ungetestet (funktioniert wahrscheinlich nicht im IE7+)

function checkSize(fileInput, limit){
    if(!window.ActiveXObject){
        return false;
    }
    var oas = new ActiveXObject("Scripting.FileSystemObject"),
        d = fileInput.value,
        e = oas.getFile(d),
        f = e.size;
    return f <= limit; // in bytes
}

0voto

Thomas Kjørnes Punkte 1921

Sie können versuchen swfupload wenn Flash für Sie eine Option ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X