57 lines
No EOL
1 KiB
Markdown
57 lines
No EOL
1 KiB
Markdown
file split and merge
|
|
|
|
FrontEnd
|
|
```html
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Document</title>
|
|
</head>
|
|
<body>
|
|
<input id="fileInput" type="file" name="" id=""><br>
|
|
<button onclick="submit()" id="submit">Submit</button>
|
|
<script src="script.js"></script>
|
|
</body>
|
|
</html>
|
|
```
|
|
|
|
```js
|
|
const fileEle=document.querySelector("#fileInput")
|
|
const sliceSize=10*1024*1024 // 10MB
|
|
|
|
const submit=()=>{
|
|
const file= fileEle.files[0]
|
|
const fileSize=file.size
|
|
|
|
let start=0;
|
|
let end=sliceSize
|
|
|
|
const filePieces=[]
|
|
while(end<=fileSize)
|
|
{
|
|
const chunk = file.slice(start,end)
|
|
filePieces.push(chunk)
|
|
start=end
|
|
end+=sliceSize
|
|
}
|
|
|
|
if(start<fileSize)
|
|
{
|
|
const chunk = file.slice(start,fileSize)
|
|
filePieces.push(chunk)
|
|
}
|
|
|
|
console.log('file: ',file)
|
|
console.log('filePieces: ',filePieces)
|
|
|
|
const blob=new Blob(filePieces)
|
|
const a=document.createElement("a")
|
|
const link=URL.createObjectURL(blob)
|
|
a.href= link
|
|
a.download="something1"
|
|
a.click()
|
|
|
|
|
|
``` |