文件下载一个字节数组作为一个文件在javascript / Extjs

前端之家收集整理的这篇文章主要介绍了文件下载一个字节数组作为一个文件在javascript / Extjs前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的Ext Js解决方案中,我正在调用一个返回 JSON格式的服务
{"success":true,"filename":"spreadsheet.xlsx","file":[80,75,3,4,20,...(many more)]}

如何使用文件名和字节数组(文件)的内容进行文件下载对话?

UPDATE

所以我发现这一点开始downlaod

var a = window.document.createElement('a');
                    a.href = window.URL.createObjectURL(new Blob(data.file,{ type: 'application/octet-stream' }));
                    a.download = data.filename;

                    // Append anchor to body.
                    document.body.appendChild(a)
                    a.click();

                    // Remove anchor from body
                    document.body.removeChild(a)

到目前为止好

但是我得到的文件被损坏,所以我怀疑我需要编码/解码文件变量?

解决方法

我将文件转换成Uint8Array,然后将其传递给Blob
var arr = data.file;
var byteArray = new Uint8Array(arr);
var a = window.document.createElement('a');

a.href = window.URL.createObjectURL(new Blob([byteArray],{ type: 'application/octet-stream' }));
a.download = data.filename;

// Append anchor to body.
document.body.appendChild(a)
a.click();


// Remove anchor from body
document.body.removeChild(a)

阅读这个答案帮助了很多https://stackoverflow.com/a/16245768/1016439

猜你在找的JavaScript相关文章