php上传文件进度条
(php5.4以上支持)
一、php.ini配置:
session.upload_progress.enabled = on
session.upload_progress.cleanup =on
session.upload_progress.prefix = "upload_progress_"
session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS"
session.upload_progress.freq = "1%"
session.upload_progress.min_freq = "1"
二、客户端:
<form method="post" action="upload.php" target="upload" id="fileupload">
<input type="hidden" name="<?php echo ini_get('session.upload_progress.prefix') ?>" value="text">
<input type="file" name="file1">
<input type="submit" value="上传">
</form>
<!--使上传后不会转到一个新页面-->
<iframe name="upload" src="about:blank" style="display:none"></iframe>
<!--进度条-->
<div id="progress" style="width: 200px;display: none">
       <div id="bar" style="width: 0%;background-color: #080;height: 15px"></div>
       <div id="label">0%</div>
</div>
<script>
    jQuery(function ($) {
        $("#form1").submit(function () {
            setTimeout(progressbar, 100);
        });
        function progressbar() {
            $("#progress").show();
            $.get("{:url('progress')}", {"<?php echo ini_get('session.upload_progress.name'); ?>": "test"}, function (data) {
                var i = parseInt(data);
                $("#bar").css({"width": i + '%'});
                $("#label").text(i + "%");
                if (i < 100) {
                    setTimeout(progressbar, 100);
                }
            });
        }
    });
</script>
三、服务器端:
upload.php
session_start();
if(is_uploaded_file($_FILES['file1']['tmp_name']){
    $_SESSION['isupload']=1;
    move_uploaded_file($_FILES['file1']['tmp_name'],'./upload/'.iconv('utf-8','gbk',$_FILES['file1']['name']));//iconv()为支持中文文件名
}
progress.php
session_start();
$key=ini_get("session.upload_progress.prefix").$_GET[ini_get("session.upload_progress.name")];          
if(!empty($_SESSION[$key])){
    return ceil($_SESSION[$key]['bytes_processed']/$_SESSION[$key]['content_length']*100);
}else if($_SESSION['isupload']){           
    $_SESSION['isupload']=0;
    return 100;
}else{
    return 0;
}


上一篇:php上传文件

下一篇:js读取上传的文件