De entrada tendras que conocer que para enviar mediante ajax tendras que usar en javascript el objeto XMLHttpRequest (Me limito solo a este pero al final te dejo documentacion donde puedes ver que para otros navegadores antiguos es necesario crear otro objeto (w3schools).
Código Javascript
:
Ver originalxmlhttp=new XMLHttpRequest();
xmlhttp.open("GET","demo_get.asp",true);
xmlhttp.send();
Para hacer el envio de un fichero se usa POST. Se puede ver un ejemplo de envio de datos mediante POST:
Código Javascript
:
Ver originalxmlhttp.open("POST","ajax_test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");
Ya solo queda saber que para enviar archivos hay que hacer uso del objeto FormData.
Código Javascript
:
Ver originalxmlhttp.open("POST","ajax_test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
var formData = new FormData();
formData.append("thefile", file);
xmlhttp.send(formData);
Y finalmente hay que mirar lo que se recibe a cambio para comprobar que todo se ha hecho correctamente.
Links:
http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp
http://stackoverflow.com/questions/6211145/upload-file-with-ajax-xmlhttprequest
https://developer.mozilla.org/es/docs/XMLHttpRequest/FormData
https://developer.mozilla.org/en-US/docs/Web/Guide/Using_FormData_Objects?redirectlocale=en-US&redirectslug=Web%2FAPI%2FFormData%2FUsing_FormD ata_Objects
Saludos.