我想使用node来向其他服务器传输文件
已经使用request或者axios库实现
但是我想获得传输的进度
该如何做?
// request库
let form = {
type:'zip',
file:file,
path:'/temp'
}
request.post({
url:url,
formData:form
},(err,res,body)=>{
if(err){
console.log(err)
return
}
console.log(body)
console.log('上传成功')
})
// axios库
let fd = new FormData();
fd.append('type','zip')
fd.append('file', file)
function getHeaders(form) {
return new Promise((resolve, reject) => {
form.getLength((err, length) => {
if(err) { reject(err); }
let headers = Object.assign({'Content-Length': length}, form.getHeaders());
resolve(headers);
});
});
}
getHeaders(fd)
.then(function(headers){
axios.post(url, fd, {
headers:headers,
onUploadProgress:function(e){
console.log('0')
}
}).then(function(res){
console.log('上传成功')
})
})
1。进度和进度条不一样。
2。进度条属于css样式,可以使用js动态实现css进度条,这个不用赘述。
3。我所知的进度,就是(已经接受的文件大小)/(完整文件大小)