Uncaught InvalidCharacterError:无法从base64映像转换为blob

我尝试将base64转换为blob,但得到未捕获的错误InvalidCharacterError:无法在'Window'上执行'atob':要解码的string编码不正确。

我testing了我的base64图像数据在这里http://codebeautify.org/base64-to-image-converter它工作正常,我能够看到图像呈现良好

function b64toBlob(b64Data, contentType, sliceSize) { contentType = contentType || ''; sliceSize = sliceSize || 512; var byteCharacters = atob(b64Data); var byteArrays = []; for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) { var slice = byteCharacters.slice(offset, offset + sliceSize); var byteNumbers = new Array(slice.length); for (var i = 0; i < slice.length; i++) { byteNumbers[i] = slice.charCodeAt(i); } var byteArray = new Uint8Array(byteNumbers); byteArrays.push(byteArray); } var blob = new Blob(byteArrays, {type: contentType}); return blob; } var blob = b64toBlob(base64Data, 'image/jpeg'); console.log(blob) 

https://jsfiddle.net/wfh5fjn9/

发生了什么事情是,你保存的data:image/jpeg;base64,base64Data的string。 你需要删除它,只保留实际上 base64编码的string,以使其工作。

换一种说法,

 var base64Data = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ' // truncated 

 var base64Data = '/9j/4AAQSkZJRgABAQ' // truncated 

https://jsfiddle.net/wfh5fjn9/1/