上传、下载和普通请求的区别
主要区别就是在一个 content-type
字段的不同,上传时一般时 multipart/form-data
。而下载时,一般由后端设置 content-type
的值,内容可能包括文件的类型,文件名等信息。
# 使用fetch下载文件的代码示例
fetch('http://somehost/somefile.zip').then(
res => res.bob()
).then(blob => {
let a = document.createElement('a');
let url = window.URL.createObjectURL(blob);
let filename = 'myfile.zip';
a.href = url;
a.download = filename;
a.click();
window.URL.revokeObjectURL(url);
/*
第一步:fetch接口获取其内容转化为blob对象;
第二部:将blob对象使用reateObjectURL转化为ObjectURL,这个相等于下载地址的链接;
第三步:创建一个a标签,并赋予ObjectURL,且执行一次click;
第四步:通过revokeObjectURL回收ObjectURL;
*/
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
← 大文件上传问题