【发布时间】:2019-03-19 21:55:36
【问题描述】:
我创建了一个函数,该函数采用 blob 和 fileName,它应该下载实现如下的 blob:
const blobToBase64 = (blob, callback) => {
const reader = new FileReader();
reader.onloadend = () => {
const base64 = reader.result;
console.log({ base64 });
callback(base64);
};
reader.readAsDataURL(blob);
};
const downloadFile = (blob, fileName) => () => {
const link = document.createElement('a');
blobToBase64(blob, (base64) => {
link.href = base64;
link.download = fileName;
link.click();
});
};
downloadFile(myBlob, myFileName);
为了尝试调试,我创建了一个console.log 以注销由reader.result 创建的base64 的值。
base64 的值为 data:application/octet-stream;base64,Mzc4MDY4...
我的 PDF 文件已下载,但已损坏。我在文件下载实现中做错了什么?
如果有任何其他细节可能对此有所帮助,请告诉我?我 100% 确定 blob 本身不是损坏的文件。
【问题讨论】:
-
文件类型应该是
application/pdf,而不是application/octet-stream -
用
application/pdf替换application/octet-stream并不能解决问题。 -
那么你的 blob 可能只是无效的。你确定不是吗?
-
我很确定它不是无效的,正在调查它:/
-
@BarryMichaelDoyle 你的问题得到解决了吗?
标签: javascript file download base64 blob