原生ajax怎么传data,使用原生ajax通过formdata完成文件上传,并实时监控上传进度

原生ajax2.0使用FormData上传文件, 并监听上传进度
原生ajax2.0使用FormData上传文件, 并监听上传进度

上传

上传进度0%

// 处理上传进度

function progressFunction(e){

var progress_bar = document.getElementById("progress_bar");

var loading_dom = document.getElementById("loading");

var loading = Math.round(e.loaded / e.total * 100);

console.log("loading::", loading);

if(loading === 100){

loading_dom.innerHTML = "上传成功^_^";

}else{

loading_dom.innerHTML = "上传进度"+loading+"%"

}

progress_bar.style.width = String(loading * 3) + "px";

}

// 上传成功

function uploadComplete(e) {

console.log("上传成功!", e);

}

// 上传失败

function uploadFailed(e) {

console.log("上传失败", e);

}

function to_upload_file(){

var file_obj = document.getElementById("avatar").files[0]

if(file_obj){

var url = "/upload_file";

var form = new FormData();

form.append("file", file_obj);

var xhr = new XMLHttpRequest();

xhr.onload = uploadComplete; // 添加 上传成功后的回调函数

xhr.onerror = uploadFailed; // 添加 上传失败后的回调函数

xhr.upload.onprogress = progressFunction; // 添加 监听函数

xhr.open("POST", url, true);

xhr.send(form);

}else{

alert("请先选择文件后再上传")

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值