Hola:
Verás, sin tecnologías externas (applets, flash...) solo se pueden subir archivos con un formulario y un botón submit; y todo lo que veas sobre subir archivos con Ajax, no es más que una simulación.
La cabecera necesaria no la soporta el objeto Ajax... incluso soportándola, la forma de pasar datos con los objetos Ajax es insertando contenidos, y javascript no tiene acceso a los sistemas de los usuarios para obtener la información binaria de los ficheros.... no voy a estudiar el código que tienes, pero ya lo hemos discutido en muchas ocasiones, y esa es la conclusión...
Saludos