Hey Leute,
ich versuche gerade einen Dateiupload via Ajax zu realisieren. Leider hackt es etwas an meinen JS Kenntnissen.
Der Upload einer einzelnen Datei funktioniert ohne Probleme, wenn ich jedoch mehrere Dateien auswähle, wird jeweils nur die letzte Datei übertragen. Ich bin mir recht sicher, das Problem hierbei gefunden zu haben.
Vom Prinzip her, überschreibe 'file' immer wieder mit dem letzten Bildinformationen. Kann mir jemand sagen, wie 'file' die Variable i mit anhänge, so das 'file'+i an das FormData angehangen wird?
ich versuche gerade einen Dateiupload via Ajax zu realisieren. Leider hackt es etwas an meinen JS Kenntnissen.
Code:
$(document).ready(function(){ $("input[name=file]").on('change', function(){ var form_action = $("input[name=form_action]").val(); var file = new FormData(); file.append('form_action', form_action); file.append('datei_name', this.filename); if(this.files.length == 1){ $("div#message").append('</br> Bild' + this.files[0].name +' übertragen </br>'); file.append('file', this.files[0]); } else if(this.files.length > 1){ $("div#message").append("</br> Mehrfachauswahl</br>"); for(var i = 0; i < this.files.length; i++){ $("div#message").append("Bild "+ i + "Name " + this.files[i].name + " Dateigröße" + this.files[i].size + "</br>"); file.append('file', this.files[i]); } } $.ajax({ url: "upload.php", type: "POST", data: file, processData: false, contentType: false, success: function(){ $("div#message").append("Datei(n) übertragen </br>"); } }) return false; }) })
Code:
file.append('file', this.files[i]);
Kommentar