php上传文件进度条
创始人
2025-07-09 12:16:40
0
(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上传文件

下一篇:php的session

相关内容

热门资讯

弹性布局 布局的传统解决方案,基于盒状模型,依赖display属性+position属性+float属性。20...
js设置html属性和CSS属... js设置html属性:(1)添加属性对象名.属性名=值对象名.setAttribute("属性名",...
php swoole实现web... 1、使用http连接websocket(ws://)服务器端:
css实现强制不换行/自动换行... 强制不换行white-space:nowrap;自动换行word-wrap: break-word;...
关于css的text-inde... p{text-indent: 2em; /*em是相对单位,2em即现在一个字大小的两倍*/}可加了...
html的data url和b... data urldata url的语法为:data:[][;base64],说明:(1)mediat...
php的安装与配置 一、linux(centos)1、nginx的安装与配置新建文件/etc/yum.repos.d/n...
自定义复选框样式 input[type="checkbox"] {appearance:none;-webkit-ap...
fetch方式发送请求 1、以get方式发送查询字符串fetch("server.php?查询字符串"[,{method:"...
css实现内容裁剪 1、实现单行内容裁剪,后跟省略号overflow:hidden;text-overflow:elli...