Moin,
ich habe im Internet diesen Beitrag gefunden, der einen einfachen Dateiupload mit AJAX (per jQuery) zeigt. Wenn ich genau dieses Skript nehme funktioniert es auch. Allerdings soll das bei mir in eine Funktion, die das Input-Element, in welchem die Datei ausgewählt wird, nicht direkt übergeben kriegt.
Originalcode:
$(document.body).on('change', '#ufile', function() {
var data = new FormData();
data.append('file', this.files[0]);
data.append('api', 'uploadFile');
data.append('dir', currentDir);
$.ajax({
url:IFM_SCFN,
data:data,
type:'POST',
processData: false,
contentType:false,
success: function(evt) { alert(evt); }
});
});
Mein Code:
function uploadFile() {
var data = new FormData();
data.append('api', 'uploadFile');
data.append('file', $("#ufile]").files[0]);
data.append('newfilename', $("#uploadFile input[name^=newfilename]").val());
data.append('dir', currentDir);
$.ajax({
url: IFM_SCFN,
type: "POST",
data: data,
processData: false,
contentType: false,
success: function(data) {
alert(data);
if(data.status == "OK") {
showMessage("File successfully uploaded", "s");
refreshFileTable();
} else showMessage("File could not be uploaded: "+data.message, "e");
},
error: function() { showMessage("General error occured", "e"); }
});
}
Beim Ausführen der Funktion kommt der Fehler
Cannot read property '0' of undefined
Das Problem ist, dass wenn ich per jQuery das Input-Feld selektiere ich keine Eigenschaft files habe. Kann mir jemand einen Tipp geben, wie ich das anders selektieren kann, damit es diese Eigenschaft hat?
Grüße Marco
--
Ich spreche Spaghetticode - fließend.
Ich spreche Spaghetticode - fließend.