我必须使用进度条显示文件的上传状态.我正在使用axioshttp请求.我按照他们的github页面中的示例https://github.com/mzabriskie/axios/blob/master/examples/upload/index.html
我的代码看起来像这样:
this.store().then(() => {
var form = new FormData();
form.append('video', this.file);
form.append('uid', this.uid);
axios.post('/upload', form, {
progress: (progressEvent) => {
if (progressEvent.lengthComputable) {
console.log(progressEvent.loaded + ' ' + progressEvent.total);
this.updateProgressBarValue(progressEvent);
}
}
})
});
Run Code Online (Sandbox Code Playgroud)
但是,它根本没有执行console.log(progressEvent.loaded + ' ' + progressEvent.total);,也没有调用this.updateProgressBarValue(progressEvent);
我怎么解决这个?
我是javascript世界的新手.
如果我使用这个小提琴https://jsfiddle.net/v70kou59/1/一切正常
(function () {
var output = document.getElementById('output');
document.getElementById('upload').onclick = function () {
var data = new FormData();
data.append('foo', 'bar');
data.append('file', document.getElementById('file').files[0]);
var config = {
onUploadProgress: function(progressEvent) {
var percentCompleted = Math.round( (progressEvent.loaded * 100) / progressEvent.total );
console.log(percentCompleted)
}
};
axios.put('/upload/server', data, config)
.then(function (res) {
output.className = 'container';
output.innerHTML = res.data;
})
.catch(function (err) {
output.className = 'container text-danger';
output.innerHTML = err.message;
});
};
})();
Run Code Online (Sandbox Code Playgroud)
但是,如果我下载 axios 示例存储库并安装回调函数所需的依赖项,则 onUploadProgress 不再按预期工作。它只使用“100”触发 onUploadProgress 一次。 https://github.com/axios/axios/tree/master/examples
这可能是我的节点版本吗?看来一定是我的机器。