Fix extremely slow binary to base64 (#3201)
This commit is contained in:
parent
8017b2ab1b
commit
a2e8be2af5
2 changed files with 24 additions and 14 deletions
|
@ -3613,13 +3613,18 @@ Zotero.defineProperty(Zotero.Item.prototype, 'attachmentDataURI', {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
let buf = await OS.File.read(path, {});
|
let buf = await OS.File.read(path, {});
|
||||||
let bytes = new Uint8Array(buf);
|
buf = new Uint8Array(buf).buffer;
|
||||||
let binary = '';
|
return new Promise((resolve, reject) => {
|
||||||
let len = bytes.byteLength;
|
let blob = new Blob([buf], { type: this.attachmentContentType });
|
||||||
for (let i = 0; i < len; i++) {
|
let reader = new FileReader();
|
||||||
binary += String.fromCharCode(bytes[i]);
|
reader.onloadend = function () {
|
||||||
}
|
resolve(reader.result);
|
||||||
return 'data:' + this.attachmentContentType + ';base64,' + btoa(binary);
|
}
|
||||||
|
reader.onerror = function (e) {
|
||||||
|
reject("FileReader error: " + e);
|
||||||
|
};
|
||||||
|
reader.readAsDataURL(blob);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -831,13 +831,18 @@ Zotero.File = new function(){
|
||||||
}
|
}
|
||||||
|
|
||||||
var buf = await OS.File.read(file, {});
|
var buf = await OS.File.read(file, {});
|
||||||
var bytes = new Uint8Array(buf);
|
buf = new Uint8Array(buf).buffer;
|
||||||
var binary = '';
|
return new Promise((resolve, reject) => {
|
||||||
var len = bytes.byteLength;
|
let blob = new Blob([buf], { type: contentType });
|
||||||
for (let i = 0; i < len; i++) {
|
let reader = new FileReader();
|
||||||
binary += String.fromCharCode(bytes[i]);
|
reader.onloadend = function () {
|
||||||
}
|
resolve(reader.result);
|
||||||
return 'data:' + contentType + ';base64,' + btoa(binary);
|
}
|
||||||
|
reader.onerror = function (e) {
|
||||||
|
reject("FileReader error: " + e);
|
||||||
|
};
|
||||||
|
reader.readAsDataURL(blob);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue