ajax 文件上传带进度条原理

html代码

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head> 
<body>

    <div style="width:500px;height:20px;border:1px solid gray">
        <div id='prog' style="height:100%;width:0%;background:green;"></div>
    </div>

    <form action="./1.php" method="post" enctype="multipart/form-data" target="frm">
        <p><input type="file" name="pic" id=""></p>
        <p><input type="text" name="username" id=""></p>
        <p><input type="submit" value="提交"></p>
    </form>

    <iframe src="1.php" name='frm' ></iframe>

</body>

<script type="text/javascript">

    var fm = document.getElementsByTagName('form')[0];

    fm.onsubmit = function(){

        var fmdata = new FormData(this);

        var xhr = new XMLHttpRequest();

        xhr.onreadystatechange = function(){

            if(this.readyState == 4 ){
                alert(this.responseText);
            }
        }

        xhr.upload.onprogress = function(ev){
            if(ev.lengthComputable){
                var per = 100* ev.loaded/ev.total;
                document.getElementById('prog').style.width = per + '%';
            }
        }

        xhr.open('post','2.php',true);
        xhr.send(fmdata);

        return false;

    }
</script>
</html>

php代码


1.php

<?php

if($_FILES){
    echo '上传成功';
}

?>

<h1>上传后台</h1>

2.php

<?php

// print_r($_FILES);
// print_r($_POST);

echo move_uploaded_file($_FILES['pic']['tmp_name'], './' . $_FILES['pic']['name'])?'ok':'fail';

?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值