AJAX-----15HTML5实现进度条上传

目的当然还是为了提高用户的体验度嘛,,

废话不多说走码。。。。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        #jdt{ width:300px; height:25px; }
        progress{ display:none;  width:200px; height:25px;  float:left;  }
        #sd{ float:left;  }        
    </style>
    <script>
        function selefile(){
            //创建FormData对象
            var fd = new FormData();
            //获取文件对象
            var pic = document.getElementsByTagName('input')[0].files[0];
            //把文件内容追加到表单数据里
            fd.append('pic',pic);
            //创建xmlhttprequest对象
            var xhr = new XMLHttpRequest();
            //打开
            xhr.open('POST','12.php',true);
            //利用xhr2的新标准,为上传过程写自定义一个函数
            xhr.upload.onprogress = function(event){
                 if(event.lengthComputable){
                     //获取他的百分比
                     var bfb = 100 * event.loaded / event.total;
                     var bfbtwo = Math.ceil(bfb);
                     var pro = document.getElementsByTagName('progress')[0];
                     pro.style.display = 'block';
                     pro.setAttribute('value',bfbtwo);
                     var sd = document.getElementById('sd');
                     sd.innerHTML = bfbtwo +'%';
                 }
            }
            //接收返回值
            xhr.onreadystatechange = function(){
                if(this.readyState == 4){
                    document.getElementById('desc').innerHTML = this.responseText;
                }
            }
            //发送fd给后端
            xhr.send(fd);
        }
    </script>
</head>
<body>
    
    <div id="jdt"><progress max="100" value=""></progress><span id="sd"><span></div>
    <input type="file" name="pic" onchange="selefile();" >
    <div id="desc"></div>
</body>
</html>

<?php
    //print_r($_FILES);

    if(empty($_FILES)){
        exit('No file');
    }
    
    if($_FILES['pic']['error'] != 0){
        exit('no file');
    }
    $picaddress = 'upload/'.time().rand();
    move_uploaded_file($_FILES['pic']['tmp_name'],$picaddress.'.jpg');
    echo 'OK';

效果如下所示:

原文地址:https://www.cnblogs.com/leigood/p/6045474.html