js 文件分片上传
btn.addEventListener('click', upload);
let chunk = 1024;
let index = 0;
function upload() {
// 拿到当前的文件
let file = input.files[0];
// 每次的起始位置
let start = chunk * index;
// 因为文件是继承bold的二进制大对象所以当前就有size
if (start > file.size) return;
//获取文件名称
let [name, ext] = file.name.split('.');
//每次分片的大小
let bold = file.slice(start, start + chunk);
const formData = new FormData();
//得到文件名称,index的目的是分片不重复
let boldName = `${name}${index}.${ext}`;
//需要在转换为文件对象
let boldFile = new File([bold], boldName);
formData.append('file', boldFile);
fetch('/upload', {
method: 'POST',
body: formData
}).then((res) => {
index++;
upload();
})
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
上次更新: 2024/01/30, 00:35:17
- 01
- linux 在没有 sudo 权限下安装 Ollama 框架12-23
- 02
- Express 与 vue3 使用 sse 实现消息推送(长连接)12-20