首页 > Web开发 > 详细

ajax实现图片上传与进度条

时间:2020-03-15 09:58:10      阅读:82      评论:0      收藏:0      [点我收藏+]

这里使用的是bootstract的一个插件来实现

详情请查看文档中的进度条 https://v3.bootcss.com/components/

引入必要的文件

 <link href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>

页面结构

<input type="file" id="Pic">
<div style="width: 600px;">
    <div class="progress">
        <div class="progress-bar progress-bar-striped active" role="progressbar" 
             aria-valuemin="0" aria-valuemax="100" style="width: 45%">
            <span class="sr-only">45% Complete</span>
        </div>
    </div>
</div>

js代码

注意其中onprogress事件需要卸载send之上,否则不会响应

 let pic = document.getElementById('Pic');
    pic.onchange = function () {
        let fd = new FormData();
        let long = document.querySelector('.progress-bar')
        fd.append('pic', this.files[0]);
        
        let xhr = new XMLHttpRequest();
        xhr.open('post', 'http://127.0.0.1:8080/uploadHeadImg');
        xhr.upload.onprogress = function(e){ 
            long.style.width =  e.loaded/e.total*100+'%'
            console.log(e.loaded/e.total*100+'%')
        }
        xhr.send(fd);
        xhr.onreadystatechange = function () {
            if (xhr.readyState === 4 && xhr.status === 200) {
                let response = xhr.responseText
                if (xhr.getResponseHeader('Content-Type').indexOf('json') !== -1) {
                    response = JSON.parse(xhr.responseText)
                }
            }
        }
       
    }

ajax实现图片上传与进度条

原文:https://www.cnblogs.com/axu1997/p/12495500.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!