Wie kann ich Dateien hochladen asynchron?

Ich würde gerne eine Datei hochladen, die asynchron mit jQuery. Das ist mein HTML:

<span>File</span>
<input type="file" id="file" name="file" size="10"/>
<input id="uploadbutton" type="button" value="Upload"/>

Und hier meine Jquery code:

$(document).ready(function () {
    $("#uploadbutton").click(function () {
        var filename = $("#file").val();

        $.ajax({
            type: "POST",
            url: "addFile.do",
            enctype: 'multipart/form-data',
            data: {
                file: filename
            },
            success: function () {
                alert("Data Uploaded: ");
            }
        });
    });
});

Anstelle der Datei, die hochgeladen wird, ich bin immer nur der Dateiname. Was kann ich tun, um dieses problem zu beheben?

Aktuelle Lösung

Ich bin mit dem jQuery Form Plugin zum hochladen von Dateien.

Es gibt verschiedene vorgefertigte plugins auf tun, Datei-upload für jQuery. Diese Art von hacks hochladen ist nicht eine angenehme Erfahrung, so dass Menschen genießen die Verwendung von vorgefertigten Lösungen. Hier einige Beispiele: - JQuery File Uploader - Mehrere Datei-Upload-Plugin - Mini-Multiple Datei-Upload - jQuery File Upload Sie suchen können für weitere Projekte auf NPM (mit "jquery-plugin" als Schlüsselwort) oder auf Github.
Sie sind nur immer die Datei-Namen haben, weil Ihre var filename ist immer der Wert von $('#Datei'), nicht die Datei, liegt in der Eingabe
Hier ist ein guter: http://blueimp.github.io/jQuery-File-Upload/ - HTML5-ajax-Upload - Graceful fallback zu iframes für nicht unterstützte Browser - Multi-Datei-async-upload haben Wir es und es funktioniert Super. (Dokumentation)
Überprüfen Sie auch dies: stackoverflow.com/questions/6974684/..., hier ist es erklärt, wie es zu erreichen via jQuery
Wie würde er, der die Datei liegt, die in der Eingabe statt?

InformationsquelleAutor Sergio del Amo | 2008-10-03

Schreibe einen Kommentar