【发布时间】:2020-12-10 23:24:18
【问题描述】:
当我使用以下方法时:
downloadFile(){
const blob = this.b64toBlob(this.formGroup.value.attachment);
const url = window.URL.createObjectURL(blob);
window.open(url);
}
我希望它会打开一个新标签并下载文件。
但它只是打开一个包含原始文本内容的新标签。 This is the result I get.
但是,如果我将页面内容复制/粘贴为 URL,它运行良好,并且我的下载按预期开始。
我应该怎么做才能直接开始下载。
PS:这是 b64toBlob() 方法:
b64toBlob(b64Data: string, contentType = '', sliceSize = 512): Blob {
const byteCharacters = atob(b64Data);
const byteArrays = [];
for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
const slice = byteCharacters.slice(offset, offset + sliceSize);
const byteNumbers = new Array(slice.length);
for (let i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
return new Blob(byteArrays, {type: contentType});
}
【问题讨论】:
标签: javascript html angular typescript blob