HTML-JQuery-Codebeispiel zum Abschließen des asynchronen Datei-Uploads

Y2J
Freigeben: 2017-05-22 10:14:09
Original
1837 Leute haben es durchsucht

In diesem Artikel wird kurz die Verwendung von FormData zum Implementieren des asynchronen Hochladens von Dateien vorgestellt. Der Code ist einfach und leicht zu verstehen, sehr gut und hat einen Referenzwert Ich muss darauf verweisen

1 Einführung

Die Entwicklung einer Datei-Upload-Funktion ist nie eine angenehme Sache, insbesondere der asynchrone Upload, den ich verwendet habe Iframe- und Flash-Upload-Lösungen fühlten sich ebenfalls sehr umständlich an. In diesem Artikel wird kurz die Verwendung von FormData von HTML5 zum Implementieren des asynchronen Hochladens von Dateien vorgestellt. Außerdem können Upload-Fortschrittsbalken und die Überprüfung der Dateigröße implementiert werden. Der Server verwendet zur Verarbeitung die SpringMVC-Lösung.

2 HTML-Code

<form id="myForm">
    <input type="file" id="u_photo" name="u_photo" />
    <input type="button" id="submit-btn" value="上传" />
</form>
Nach dem Login kopieren

3 JQuery-Upload

$("#submit-btn").on(&#39;click&#39;, function() {
    $.ajax({
        url:"/test/upload",
        type:"post",
        data:new FormData($("#myForm").get(0)),
        //十分重要,不能省略
        cache: false,
        processData: false,
        contentType: false,
        success: function () {
            alert("上传成功!");
        }
    });
});
Nach dem Login kopieren

4 Überprüfung der JQuery-Dateigröße

Die Kontrolle der Dateigröße und des entsprechenden Verhaltens muss bei Bedarf von Ihnen selbst gehandhabt werden. Diese Methode ist nur eine Beispielmethode.

$(&#39;#u_photo&#39;).on(&#39;change&#39;, function() {
    var file = this.files[0];
    if (file.size > 1024*1000) {
        alert(&#39;文件最大1M!&#39;)
    }
});
Nach dem Login kopieren

5 JQuery-Fortschrittsbalken

Fügen Sie xhr zur Ajax-Methode hinzu, um den Upload-Fortschritt zu steuern. Der Fortschrittsbalken kann den Fortschritt von HTML5 verwenden Sie können auch andere Fortschrittsbalken verwenden. Das Anzeigen und Ausblenden des Fortschrittsbalkens muss von Ihnen selbst durchgeführt werden. Diese Methode führt nur kurz in die grundlegende Steuerung des Fortschrittsbalkens ein.

xhr: function() {
    var myXhr = $.ajaxSettings.xhr();
    if (myXhr.upload) {
        myXhr.upload.addEventListener(&#39;progress&#39;, function(e) {
            if (e.lengthComputable) {
                $(&#39;progress&#39;).attr({
                    value: e.loaded,
                    max: e.total,
                });
            }
        } , false);
    }
    return myXhr;
}
Nach dem Login kopieren

6 SpringMVC-Server

6.1 Maven-Abhängigkeit

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.5</version>
</dependency>
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.2</version>
</dependency>
Nach dem Login kopieren

6.2 servlet-context.xml

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
Nach dem Login kopieren

6.3 Controller

Beispielprogramm liefert nicht den entsprechenden Code für die Dateiüberprüfung, -speicherung und -verarbeitung.

@RequestMapping(value="/test/upload",method = RequestMethod.POST)
@ResponseBody
public String upload(@RequestParam("u_photo") MultipartFile u_photo) {
    System.out.println("u_photo="+u_photo.getSize());
    return "ok";
}
Nach dem Login kopieren

7 Kompatibilität

IE 10+, Firefox 4.0+, Chrome 7+, Safari 5+, Opera 12+

8 empfohlene Lektüre

Wenn Sie mit der oben genannten Lösung nicht zufrieden sind, wird die Verwendung der folgenden Lösung empfohlen:

JQuery File Uploader

【Verwandte Empfehlungen】

1. HTML-kostenloses Video-Tutorial

2.Grafische Erläuterung der Wissenspunkte zu HTTP-Headern

3. Detaillierte Erläuterung der HTML5-Datenlisten-Tags und des dynamischen Abgleichs mit Hintergrunddaten

4. Teilen Sie eine äußerst umfassende Zusammenfassung der HTML- und CSS-Wissenspunkte

5. Lernen Sie, wie man HTML unter nodejs analysiert

Das obige ist der detaillierte Inhalt vonHTML-JQuery-Codebeispiel zum Abschließen des asynchronen Datei-Uploads. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!