我有一个应用程序用于上传文件到我的服务器,我正在使用fs
并将我的文件流式传输到服务器并使用Chuck数据来跟踪文件上传进度。
此处上传示例代码:
// upload video
function uploadVideo(url,file,callback) {
let size = fs.lstatSync(file).size;
let bytes = 0;
let formData = {
file: fs.createReadStream(file).on('data', (chunk) => {
bytes += chunk.length
process.stdout.write(file+filesize(bytes).human()+' of '+filesize(size).human()+' Uploaded'+"\r")
}),
};
request.post({url:url, json:true, formData: formData}, function optionalCallback(err, httpResponse, body) {
if (err) {
return callback('upload failed:', err);
}
callback(null,body);
});
}
正如您所看到的,我正在使用process.stdout.write
来显示上传进度而没有换行符,并且工作正常。
当我同时上传多个文件时遇到的问题,所有上传进度都在一行中被覆盖,我希望每个上传进度都在单独的行中。
多个上传示例:
let files = ['video-1.mp4','video-2.mp4','video-3.mp4','video-4.mp4','video-5.mp4']
// upload multiple file
files.forEach((file) => {
uploadVideo(url,file,function(err,output){
console.log(output)
})
})