0
無法將base64轉換爲blob。我有函數定義如下:'Window'上的'atob'錯誤:要解碼的字符串編碼不正確
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;
}
而且我呼籲輸入元素的onchange()
上述功能:
previewFile(e){
var previewImage = self.root.querySelector("#previewImage");
var file = self.root.querySelector('input[type=file]').files[0];
var reader = new FileReader();
if(file){
reader.readAsDataURL(file);
} else {
previewImage.src = "";
}
reader.onloadend = function(){
var blob = self.b64toBlob(reader.result);
var blobUrl = URL.createObjectURL(blob);
previewImage.src = blobUrl;
}
}
我得到的錯誤是這樣的:Uncaught DOMException: Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.
在編碼什麼的字符串根據錯誤情況?
爲什麼地球上你會創建一個文件blob?一個文件是一個blob的實例。擺脫洞FileReader和b64toBlob的事情,只需在文件上調用createObjectURL。 – Endless