我有本地图片网址,我想从中获取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);
}
};
答案 0 :(得分:0)
您的图像需要转换为base64,然后从base64转换为二进制。这是使用.toDataURL()
和dataURItoBlob()
这是一个非常繁琐的过程,I've created a tutorial you can follow which walks you through the process。