如何从本地图像URL获取Blob?

时间:2016-12-09 13:38:32

标签: javascript browser

我有本地图片网址,我想从中获取blob。

我找到的唯一方法是执行HTTP请求' get'在本地URL上,并读取返回的blob ...但这是一种奇怪的方式。

使用HTTP的代码段:

 function readBody(xhr) {
    var data;
    if (!xhr.responseType || xhr.responseType === "text") {
        data = xhr.responseText;
    } else if (xhr.responseType === "document") {
        data = xhr.responseXML;
    } else {
        data = xhr.response;
    }
    return data;
}

var xhr=new XMLHttpRequest();
xhr.open('GET',results[i],true);
xhr.responseType='blob';
xhr.send();
xhr.onreadystatechange=function()
{
    var blob;
    if(xhr.readyState==4)
    {
        blob=readBody(xhr);
        uploadPhoto(blob,storageRef);

    }
};

1 个答案:

答案 0 :(得分:0)

您的图像需要转换为base64,然后从base64转换为二进制。这是使用.toDataURL()dataURItoBlob()

完成的

这是一个非常繁琐的过程,I've created a tutorial you can follow which walks you through the process