欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

js实现带上传进度的文件上传

程序员文章站 2022-03-29 11:26:49
//获取文件筐的文件集合 var files = document.getElementById("file1").files; //创建FormData对象 相当于参数集合 存储方式是键值对 var formData = new FormData(); //添加第一个文件到FormData for... ......
//获取文件筐的文件集合
var files = document.getelementbyid("file1").files;
//创建formdata对象  相当于参数集合  存储方式是键值对
var formdata = new formdata();
//添加第一个文件到formdata
formdata.append("file", files[0]);
//添加普通数据  后台直接参数接受
formdata.append("name", "kevinblandy");
//创建异步对象
var xhr = new xmlhttprequest();
//打开连接
xhr.open('post', '/home/upfile', true);
//监听上传事件
if (xhr.upload) {
        //监听上传属性的上传事件,每次上传事件都会执行 progresshandlingfunction
        xhr.upload.addeventlistener('progress', progresshandlingfunction, false);
        //xhr.upload.progress = function(){}            也可以
}
//执行上传
xhr.send(formdata);

//上传监听 回调
function progresshandlingfunction(event) {
        event.total;        //获取上传文件的总大小
        event.loaded;        //获取已经上传的文件大小
        //获取进度的百分比值
        let percent = (event.loaded / event.total) * 100;
           
        //四舍五入保留0位小数
        percent = percent.tofixed(0);
var jd = document.getelementbyid("jd"); jd.value = percent; }