If you don’t need support for older browsers, you can use the FormData Object, which is part of the File API:
const formData = new FormData();
const blob = new Blob(['Lorem ipsum'], { type: 'plain/text' });
formData.append('file', blob, 'readme.txt');
const request = new XMLHttpRequest();
request.open('POST', 'http://example.org/upload');
request.send(formData);
File API is supported by all current browsers (IE10+)
- https://developer.mozilla.org/en-US/docs/Web/API/FormData
- http://caniuse.com/#feat=fileapi