结合使用Ajax下载文件和Blob获取错误的大小文件

时间:2018-07-03 17:32:04

标签: ajax download blob

这些代码包含在$ .ajax()

success: function(res) {
            var a = document.createElement('a');
            var url = window.URL.createObjectURL(new Blob([res]));
            var filename = 'file.tar.gz';
            a.href = url;
            a.download = filename;
            a.click();
            window.URL.revokeObjectURL(url);
}

↑文件大小始终大于原始文件,无法使用

success: function(res) {
            fetch('/download').then(res => res.blob().then(blob => {
                var link = document.createElement('a');
                link.href = window.URL.createObjectURL(blob);
                link.download = `file.gz.tar`;
                document.body.appendChild(link);
                link.click();
                document.body.removeChild(link);
            }))}

↑文件大小正确并且可以正常工作。

有人可以告诉我有什么区别吗?是关于Blob吗?

我想使用第一种方法,因为在加载文件时需要制作覆盖效果

0 个答案:

没有答案