Kann ich den folgenden jQuery-Code verwenden, um Datei-Upload mit POST-Methode einer Ajax-Anfrage durchzuführen?
$.ajax({
type: "POST",
timeout: 50000,
url: url,
data: dataString,
success: function (data) {
alert('success');
return false;
}
});
Wenn es möglich ist, muss ich dann den "data"-Teil ausfüllen? Ist das der richtige Weg? Ich POSTe die Datei nur an die Serverseite.
Ich habe herumgegoogelt, aber was ich gefunden habe, war ein Plugin, während ich es in meinem Plan nicht verwenden möchte. Zumindest im Moment.
Datei-Upload ist nicht möglich durch Ajax.
Sie können eine Datei hochladen, ohne die Seite zu aktualisieren, indem Sie einen IFrame verwenden.
Weitere Details können Sie hier nachlesen.
UPDATE:
Mit XHR2 wird der Datei-Upload durch AJAX unterstützt. Z.B. durch FormData Objekt, aber leider wird es nicht von allen/alten Browsern unterstützt.
Die FormData-Unterstützung beginnt mit den folgenden Desktop-Browsern. IE 10+, Firefox 4.0+, Chrome 7+, Safari 5+, Opera 12+
Für weitere Einzelheiten siehe MDN-Link
Ein AJAX-Upload ist in der Tat mit XMLHttpRequest() möglich. Keine iframes notwendig. Der Fortschritt des Uploads kann angezeigt werden.
Für Details siehe: Antwort https://stackoverflow.com/a/4943774/873282 auf Frage https://stackoverflow.com/questions/4856917/jquery-upload-progress-and-ajax-file-upload.
Weitere Einzelheiten finden Sie in meinem Blogbeitrag: http://blog.manki.in/2011/08/ajax-fie-upload.html.