Python后端读取二进制文件,对其进行base64编码,将其插入到JSON文档中,并将其发送到JavaScript前端:
#Python
with open('some_binary_file', 'rb') as in_file:
return base64.b64encode(in_file.read()).decode('utf-8')
JavaScript前端从JSON文档中获取base64编码字符串,并将其转换为二进制blob:
#JavaScript
b64_string = response['b64_string'];
decoded_file = atob(b64_string);
blob = new Blob([decoded_file], {type: 'application/octet-stream'});
很不幸,在下载blob时,编码似乎出现了问题,但我不确定问题出在哪里。例如,这是一个Excel文件,我无法再打开它。在Python部分中,我尝试了不同的解码器(“ascii”,“latin1”),但没有任何区别。我的代码有问题吗?