I came across this plain js ajax upload code (it seems that jquery $.post does not work with HTML5 for some reason),
/* If you want to upload only a file along with arbitary data that
is not in the form, use this */
var fd = new FormData();
fd.append("file", document.getElementById('file').files[0]);
/* If you want to simply post the entire form, use this */
//var fd = document.getElementById('form1').getFormData();
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", "Upload.php");
xhr.send(fd);
But I have two issues here,
- what does this line mean after the object
FormData?
fd.append("file", document.getElementById('file').files[0]);
Why do I need an ID there? Can I do something use jquery append() with $('input[type=file]')?
- This ajax is only for single file upload, how can I change it for multiple files upload?