2010-02-03 12 views
6

Gibt es eine andere Möglichkeit, dass ich nur die Größe einer Datei vor dem Upload überprüfen kann? Die Anforderung ist, wenn die Datei das Limit überschreitet, muss das Formular nicht übergeben werden. Wenn dies nicht der Fall ist, muss ich das normale Hochladen mithilfe des Formulars durchführen und muss die Datei nicht mithilfe von Flash auf den Server hochladen.Andere Möglichkeiten, um die Dateigröße vor dem Hochladen zu überprüfen

Antwort

2

Gibt es eine andere Möglichkeit, dass ich einfach die Größe einer Datei vor dem Upload überprüfen kann?

Nicht in JavaScript, die Dateigröße ist not in the DOM.

1

wenn SWFUpload instanziiert wird, gibt es zwei Parameter, die Sie weitergeben müssen: FILE_SIZE_LIMIT und file_queue_error_handler:

new SWFUpload({ 
    file_size_limit: "10 MB", 
    file_queue_error_handler: queueErrorHandler, 
    [...] 
}) 

und dann:

function queueErrorHandler(file, errorCode) { 
    if (errorCode == SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT) { 
     alert("File exceeds the 10MB limit!"); 
    } 
} 

diese überprüft, ob die Dateigröße innerhalb der Grenzen liegt vor dem Start der Upload

+2

Ich möchte nur nicht die Datei mit Flash hochladen. Ich meine, ich möchte nur die Größe der Datei mit SWFUpload überprüfen und dann die Datei mit dem normalen Prozess hochladen. Scheint es möglich? – jean27

+0

Ich fand auch heraus, dass ich den Wert der Eingabedatei nicht manipulieren kann, also denke ich, was ich wirklich will, ist unmöglich. – jean27

+0

ja, mit SWFUpload nur um die Dateigröße zu überprüfen würde funktionieren, wenn Sie die Werteigenschaft der normalen Dateieingabe –

1

die Dateigröße durch die SWFUpload Steuerung möglich wird prüfen. Stellen Sie das SWFUpload-Steuerelement einfach außerhalb der Webformular-Tags. Sagen Sie dem Benutzer, klicken Sie auf den SWFUpload-Button und zeigen Sie auf seine Upload-Datei. Verwenden Sie Javascript, um die Dateigröße zu ermitteln, und verwenden Sie diese Informationen dann, wenn Sie es für richtig halten, z. B. zum Füllen einer Validierungsfunktion. Dann muss Ihr Hauptformular den Benutzer auffordern, erneut auf seine Upload-Datei zu zeigen, und es ist dieses Feld, das das tatsächliche Hochladen der Datei durchführt. Wenn das Formular gesendet wird, wird das SWFUpload-Steuerelement vollständig ignoriert, da es nicht Teil des Hauptformulars ist.

+0

Können Sie ein Beispiel geben? Ich möchte auch nur die Dateigröße und sonst nichts, ich habe meinen eigenen Fortschrittsbalken und meine eigene Art, eine Datei auf meinen Server hochzuladen. Im Grunde möchte ich nur die Dateigröße abrufen, die IE mir noch nicht geben kann. Danke? – PathOfNeo

+0

Ich denke, es ist in der Frage des OP impliziert, dass der Benutzer die Datei nicht zweimal durchsuchen/auswählen muss. –

Verwandte Themen