2016-10-21 6 views
2

Ich habe eine grundlegende Frage über die Validierung der Dateigröße in einem Spring-basierten HTTP File Upload Service. Ich verwende Spring org.springframework.web.multipart.MultipartFile, um den Datei-Upload durchzuführen.Spring HTTP File Upload: Überprüfung der Dateigröße

Meine Frage ist multipartFile.getSize() Methode Rückgabegröße nur nach Abschluss der gesamten Upload? Wenn ja, wie sieht die richtige Vorausschau aus, um Dateien basierend auf der Größe zu beschränken?

Hinweis: Der Grund, warum ich diese Frage stellen, weil ich 1 GB-Datei nicht ein Endbenutzer hochladen möchten und eine Fehlermeldung nach eine Stunde Spruch bekommen „Sorry, erlaubt maximale Dateigröße beträgt 2 KB. "

Antwort

0

MultipartFile Überprüfen Sie nur die Dateigröße auf der Serverseite. Wenn Sie die Dateigröße zum Zeitpunkt des Uploads überprüfen möchten, müssen Sie die Clientseite javascript oder jquery verwenden. javascript oder jquery kann verwendet werden, um die Dateiseite zum Zeitpunkt des Uploads zu überprüfen.

$('#myFile').bind('change', function() { 

    //this.files[0].size gets the size of your file. 
    alert(this.files[0].size); 

}); 
0

Ich denke, die Person mit ihm tun sollte das vordere Ende Programmierer (Javascript/h5) sein, die die Größe, bevor Benutzer das Hochladen überprüfen sollten. Dann muss der serverseitige Operator einige Eigenschaften wie "maxRequestLength" oder "upload_max_filesize" für die http-Anfrage einstellen.

+0

Was ist, wenn es sich um eine REST-API handelt? –

1

Beantworten Sie Ihre erste Frage, ist does multipartFile.getSize() Methode Rückgabegröße nur nach Abschluss des gesamten Uploads?

-Nein, Sie erhalten multipartFile.getSize() vor Abschluss des gesamten Uploads.

Sie können CommonsMultipartResolver in Ihrer Datei application-context.xml verwenden.

<bean id="multipartResolver" 
     class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
     <property name="maxUploadSize" value="50000000" /> 
</bean> 
+0

Wird die Größe vor der Dateiübertragung vom Client zum Server überprüft? –

+0

Nein. Wenn Sie die Größe vor der Dateiübertragung vom Client zum Server überprüfen möchten, verwenden Sie die jquery/javascript-Validierung. –