我有一个关于使用JavaScript-
的文件操作的查询场景 - 我的JS函数调用一个wcf服务,它以字节数组或流的形式返回文件内容和mime类型。需要将此字节数组/流转换为文件,并将其下载到用户的计算机上 Reference code -
var arr = "This is test content";
var byteArray = new Uint8Array(arr);
var a = window.document.createElement('a');
a.href = window.URL.createObjectURL(new Blob([byteArray], {
type: 'text/plain'
}));
a.download = "Test";
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
该代码仅适用于文本文件。 mime类型不是文本的文件已损坏。 我知道文件操作在客户端受到严格限制,但只是为了确认 - 无论如何将字节数组/流转换为Word,Excel,PDF等文件?
答案 0 :(得分:2)
我用这个完成了类似的目标。从你拥有byteArray的地方拿起,试试这个:
var byteArray = new Uint8Array(arrayBuffer);
var a = window.document.createElement('a');
a.href = window.URL.createObjectURL(new Blob([byteArray], { type:'application/octet-stream' }));
// supply your own fileName here...
a.download = "YourFileName.XLSX";
document.body.appendChild(a)
a.click();
document.body.removeChild(a)
将contentType设置为" application / octet-stream"将容纳任何二进制文件类型。