1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| async function uploadLargeFile(file, chunkSize = 5 * 1024 * 1024) {
const chunks = Math.ceil(file.size / chunkSize);
for (let i = 0; i < chunks; i++) {
const start = i * chunkSize;
const end = Math.min(start + chunkSize, file.size);
const chunk = file.slice(start, end);
const formData = new FormData();
formData.append('chunk', chunk);
formData.append('chunkIndex', i);
formData.append('totalChunks', chunks);
formData.append('fileName', file.name);
await fetch('/api/upload-chunk', {
method: 'POST',
body: formData
});
}
}
|