Carga de archivos jahr xhr sin jQuery

Tengo algunos problemas para realizar la carga de archivos xhr sin jquery. (por favor no diga que use jQuery).

si el navegador admite la API FormData y la usa, escuché que también es posible cargar archivos.

La cuestión es que no sé cómo se adjunta el archivo al objeto FormData. y el segundo problema es cómo enviar el FormData a través de XHR? Quiero decir, mira el código a continuación:

var formData = new FormData();
formData.append('somevalue', 'somevalue'); // string
formData.append( ???, ??? ); // file

var xhr = new XMLHttpRequest();
xhr.setRequestHeader('Content-type', 'multipart/form-data; charset=UTF-8');

xhr.open('post', 'URL TO UPLOAD', true);
xhr.onreadystatechange = function() { ... };

xhr.send( ?? WHAT SHOULD BE HERE IF THE FORM DATA CONTAINS FILE? JUST FORM DATA ?? );

mire el código, especialmente la segunda "parte formData.append". No sé cómo agregar DATOS DE ARCHIVO en el objeto formData.

y segundo, si quiero enviar "formData" a través de XHR, ¿pongo la variable "formData" en el método "xhr.send" como este?

xhr.send(formData);

o, ¿debería hacer algo más? es difícil encontrar la información en google, por lo que si alguien conoce este problema, le agradeceré que me diga o me aconseje cómo debería hacerlo a continuación. ¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta