加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php借助APC实现实时上传进度条功能

发布时间:2022-07-18 14:50:25 所属栏目:PHP教程 来源:互联网
导读:这篇文章主要介绍了php使用APC实现实时上传进度条功能,php本身不具备可以带有实时上传进度条功能,但是php提供了一个apc,它可以与php配置实现上传进度条,感兴趣的小伙伴们可以参考一下。 主要针对的是window上的应用。 1.服务器要支持apc扩展,没有此扩展
  这篇文章主要介绍了php使用APC实现实时上传进度条功能,php本身不具备可以带有实时上传进度条功能,但是php提供了一个apc,它可以与php配置实现上传进度条,感兴趣的小伙伴们可以参考一下。
 
  主要针对的是window上的应用。
 
  1.服务器要支持apc扩展,没有此扩展的话,下载一个扩展扩展要求php.5.2以上。
 
  2.配置apc相关配置,重启apache
 
  代码如下
 
  extension=php_apc.dll
 
 
  post_max_size = 1000M   
 
  说明一下:至于参数要配多大,得看项目需要apc.max_file_size,  设置apc所支持上传文件的大小,要求apc.max_file_size<=upload_max_filesize  并且apc.max_file_size <=post_max_size.重新启动apache即可实现apc的支持.
 
  3.在代码里面利用phpinfo();查看apc扩展安装了没有。
 
  4.下面是实现代码:
 
  getprogress.php
 
  <?php  
  session_start();  
  if(isset($_GET['progress_key'])) {  
   $status = apc_fetch('upload_'.$_GET['progress_key']);  
   echo ($status['current']/$status['total'])*100;  
  }  
  ?>  
  upload.php
  PHP Code
  <?php  
   $id = $_GET['id'];  
  ?>  
  <form enctype="multipart/form-data" id="upload_form" action="target.php" method="POST">  
  <input type="hidden" name="APC_UPLOAD_PROGRESS"
   id="progress_key" value="<?php echo $id?>"/>  
  <input type="file" id="test_file" name="test_file"/><br/>  
  <input onclick="window.parent.startProgress(); return true;"
   type="submit" value="上传"/>  
  </form>
  target.php
 
   ?>
  index.php
 
  <?php  
   $id = md5(uniqid(rand(), true));  
  ?>  
  <html>  
  <head><title>上传进度</title></head>  
  <body>  
  <script src="js/jquery-1.4.4.min.js" language="javascript"></script>  
     
     
  <script language="javascript">  
  var proNum=0;  
  var loop=0;  
  var progressResult;  
  function sendURL() {  
    $.ajax({  
     type : 'GET',  
     url : "getprogress.php?progress_key=<?php echo $id;?>",  
     async : true,  
        progressResult = e;  
       proNum=parseInt(progressResult);  
       document.getElementById("progressinner").style.width = proNum+"%";  
       document.getElementById("showNum").innerHTML = proNum+"%";  
       if ( proNum < 100){  
       setTimeout("getProgress()", 100);  
       }  
         
     }  

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读