vue-cli中获取上传文件的原生进度

Posted 码上暴富

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue-cli中获取上传文件的原生进度相关的知识,希望对你有一定的参考价值。

vue-cli中获取上传文件的原生进度

vue-cli中获取上传文件的原生进度

封装请求

export function fileUploadNew(url, params, timeout, onUploadProgress) {
	return new Promise((resolve, reject) => {
		axios({
			url,
			method: 'post',
			data: params,
			headers: {
				'Content-Type': 'multipart/form-data'
			},
			timeout: timeout, // 设置响应时间
			onUploadProgress: onUploadProgress // 原生上传进度
		}).then(res => {
			resolve(res.data);
		}).catch(error => {
			reject(error);
		})
	})
}

使用

let formData = new FormData();
                    formData.append("file", file.file);
                    let token = sessionStorage.getItem("token");
                    // 发送请求
                    fileUploadNew(
                        this.serviceUrl + "/api/enclosure/upload?token=" + token + "&relationId=" + "",
                        formData,
                        30 * 1000,
                        (progressEvent) => {
                            this.progressShow = true;
                            this.uploadPercent = ((progressEvent.loaded / progressEvent.total) * 100) | 0;
                        }
                    ).then(res => {
                        console.log(res);
                        this.fileOne = [];
                        file.status = 'done';
                        file.message = '上传成功';
                        this.fileList.push(res.data);
                        this.progressShow = false;
                        this.uploadPercent = 0;
                    }).catch(err => {
                        console.log(err);
                        if (err.config.timeout === 30000) {
                            this.$toast('请求超时,请检查网络')
                        } else {
                            console.log(err)
                        }
                        file.status = 'failed';
                        file.message = '上传失败';
                        this.progressShow = false;
                        this.uploadPercent = 0;
                    });

结果

以上是关于vue-cli中获取上传文件的原生进度的主要内容,如果未能解决你的问题,请参考以下文章

ajax上传文件及进度显示

原生ajax上传文件+进度条

如何在家庭活动android上显示进度对话框?

Layui多文件上传进度条

如何使用 Apache HttpClient 4 获取文件上传的进度条?

使用jquery.form.js实现文件上传及进度条前端代码