使用firebase 3.0.x,是否可以将base64编码的映像保存到新的Firebase存储服务?
我在上传之前使用canvas在浏览器中调整图像大小,并将它们输出为base64 jpeg.我知道Storage api可以接受Blob,但我目前的项目需要IE9支持.
我已经阅读了堆栈溢出中的一个问题,此代码在 IE 10 中有效,但在 ie9 中无效,
但我仍然面临这个问题。
var image = canvas.toDataURL();
image = image.replace(/^data:[a-z]*;,/, '');
var byteString = atob(image);
var buffer = new ArrayBuffer(byteString.length);
var intArray = new Uint8Array(buffer);
for (var i = 0; i < byteString.length; i++) {
intArray[i] = byteString.charCodeAt(i);
}
blob = new Blob([buffer], {type: "image/png"});
window.navigator.msSaveOrOpenBlob(blob, "test.png");
Run Code Online (Sandbox Code Playgroud)
在转换 atob(image) 时,它抛出异常 0x800a139e - JavaScript 运行时错误:InvalidCharacterError 我尝试了几件事,但没有任何效果...
我在图像变量中得到了这个
数据:图像/ PNG; BASE64,iVBORw0KGgoAAAANSUhEUgAAAcIAAAGQCAYAAAA9XmC5AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAABJFSURBVHhe7dvPa5x3fsDxeaR0l3UO9dLuSnJLE3rpzc6pp0KUQ2MLL8Xk1BZWt + 7BhmKaGYctfKR3ng8vjyZTE6W5St98PZnF9ZO / NeZsiyWt0 + C // RUWQBHxIkQjlBGsEx7Eb / 7ZbqQF23zz22vvf + L6 + F / Um4BQDeNRqPtvMoy194TQsc5EcIRatv2SZnmY9L1HOOUuDPdADpJCOEIRfQex7BaviCzkXsRxwc5At3kyzJwxMoXZmZfdLnZ7 / …