I'm currently looking at
function readDataFromURL(fuFullHttpURL, fuCallMeOnLoad) {
    var MyThis = this;
    this.fullHttpURL = fuFullHttpURL;
    this.callMeOnLoad = fuCallMeOnLoad;
    var oReq = new XMLHttpRequest();
    oReq.open("GET", MyThis.fullHttpURL, true);
    oReq.responseType = "arraybuffer";
    oReq.onload = function(oEvent) {
        var blob = new Blob([oReq.response], {type: "image/jpg"});
        MyThis.callMeOnLoad(blob);
    };
    oReq.send();
}
But that is only for download. How do I upload with this code? And when I tried downloading an image with xmlhttprequest in former years there was a size restriction to the download. Is there still a size restriction? In former times every browser handeled this size-restriction differently, so I can't test this myself.
Edit: https://stackoverflow.com/a/18120473/3716796 seems to explain uploading.