这些代码包含在$ .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吗?
我想使用第一种方法,因为在加载文件时需要制作覆盖效果