是否可以将字节数组/流转换为JavaScript中的Word,Excel,PDF等文件

时间:2015-10-14 11:24:34

标签: javascript wcf

我有一个关于使用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等文件?

1 个答案:

答案 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"将容纳任何二进制文件类型。