feat: Batch upload

This commit is contained in:
zhouwei 2021-02-05 16:25:33 +08:00
parent d64262676a
commit 282c19dcf7

View File

@ -1,55 +1,78 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="zh"> <html lang="zh">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>云盘上传</title>
</head>
<body> <head>
<input id="file" type="file" accept="audio/mpeg" /> <meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>云盘上传</title>
</head>
<script src="https://cdn.bootcdn.net/ajax/libs/axios/0.20.0-0/axios.min.js"></script> <body>
<script> <input id="file" type="file" multiple/>
const phone = '' <script src="https://cdn.bootcdn.net/ajax/libs/axios/0.20.0-0/axios.min.js"></script>
const password = '' <script>
let cookieToken = '' const phone = '' // 这里填手机号
if (!phone || !password) { const password = '' // 这里填密码
const msg = '请设置你的手机号码和密码' const fileUpdateTime = {}
alert(msg) let fileLength = 0
throw new Error(msg) let cookieToken = ''
} if (!phone || !password) {
login() const msg = '请设置你的手机号码和密码'
main() alert(msg)
async function login() { throw new Error(msg)
const res = await axios({ }
url: `/login/cellphone?phone=${phone}&password=${password}`, login()
withCredentials: true, //关键 main()
async function login() {
const res = await axios({
url: `/login/cellphone?phone=${phone}&password=${encodeURIComponent(password)}`,
withCredentials: true, //关键
})
cookieToken = res.data.cookie
}
function main() {
document
.querySelector('input[type="file"]')
.addEventListener('change', function (e) {
console.log(this.files)
let currentIndx = 0
fileLength = this.files.length
for (const item of this.files) {
currentIndx += 1
upload(item, currentIndx)
}
}) })
cookieToken = res.data.cookie }
}
async function main() { function upload(file, currentIndx) {
document var formData = new FormData()
.querySelector('input[type="file"]') formData.append('songFile', file)
.addEventListener('change', function (e) { axios({
var file = this.files[0] method: 'post',
upload(file) url: `http://localhost:3000/cloud?time=${Date.now()}`,
}) headers: {
} 'Content-Type': 'multipart/form-data',
},
data: formData,
}).then(res => {
console.log(`${file.name} 上传成功`)
if (currentIndx >= fileLength) { console.log('上传完毕') }
}).catch(async err => {
console.log(err)
console.log(fileUpdateTime)
fileUpdateTime[file.name] ? fileUpdateTime[file.name] += 1 : fileUpdateTime[file.name] = 1
if (fileUpdateTime[file.name] >= 4) {
console.error(`丢,这首歌怎么都传不上:${file.name}`)
return
} else {
console.error(`${file.name} 失败 ${fileUpdateTime[file.name]} 次`)
}
await login()
upload(file, currentIndx)
})
}
</script>
</body>
async function upload(file) {
var formData = new FormData()
formData.append('songFile', file)
const res = await axios({
method: 'post',
url: `http://localhost:3000/cloud?time=${Date.now()}`,
headers: {
'Content-Type': 'multipart/form-data',
},
data: formData,
})
}
</script>
</body>
</html> </html>