我从我的服务器中获取一个包含文件内容的byte[]
文件。我知道名字和content-type
.到目前为止,我已经尝试了以下方法来下载文件:
const a = document.createElement('a');
document.body.appendChild(a);
a.style.display = 'none';
const file = new Blob([content], {type: 'text/plain'});
const url = window.URL.createObjectURL(file);
a.href = url;
a.download = "test.txt";
a.click();
window.URL.revokeObjectURL(url);
但是此解决方案仅下载包含二进制内容的文本文件。如何使用 JavaScript/Typescript 在客户端将二进制数据转换为相应的文件类型?谢谢!
您可以使用文件保护程序
import { saveAs } from 'file-saver';
const file = new Blob([content], {type: 'text/plain'});
FileSaver.saveAs(file, "test.txt");
saveByteArray(bytes, type) {
var blob = new Blob([bytes],{type:type});
var link = document.createElement('a');
link.href = window.URL.createObjectURL(blob);
link.download = "fileName";
link.click();
}
c#.net:
public byte[] DocContent { get; set; }
Angular:
DocContent:ArrayBuffer;
typescript:
var content= this.base64ToArrayBuffer(response.DocContent);
var blob = new Blob([content], { type: response.ContentType });
base64ToArrayBuffer(base64: any): ArrayBuffer {
var binary_string = window.atob(base64);
var len = binary_string.length;
var bytes = new Uint8Array(len);
for (var i = 0; i < len; i++) {
bytes[i] = binary_string.charCodeAt(i);
}
return bytes.buffer;
}