国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

PHP利用apc實(shí)現(xiàn)上傳進(jìn)度條方法

2024-05-04 21:48:34
字體:
供稿:網(wǎng)友

php本身是不具備可以帶有實(shí)時(shí)上傳進(jìn)度條功能了,如果想有這種功能我們一般會(huì)使用ajax來實(shí)現(xiàn),但是php提供了一個(gè)apc,他就可以與php配置實(shí)現(xiàn)上傳進(jìn)度條.

主要針對(duì)的是window上的應(yīng)用.

1.服務(wù)器要支持apc擴(kuò)展,沒有此擴(kuò)展的話,百度一下php_apc.dll,下載一個(gè)擴(kuò)展擴(kuò)展要求php.5.2以上.

2.配置apc相關(guān)配置,重啟apache,代碼如下:

extension=php_apc.dll

apc.rfc1867 = on

apc.max_file_size = 1000M

upload_max_filesize = 1000M

post_max_size = 1000M

說明一下:至于參數(shù)要配多大,得看項(xiàng)目需要apc.max_file_size,設(shè)置apc所支持上傳文件的大小,要求apc.max_file_size <=upload_max_filesize 并且apc.max_file_size <=post_max_size.重新啟動(dòng)apache即可實(shí)現(xiàn)apc的支持.

3.在代碼里面利用phpinfo();查看apc擴(kuò)展安裝了沒有.

4.下面是實(shí)現(xiàn)代碼,getprogress.php,代碼如下:

  1. <?php    
  2. session_start();    
  3. if(isset($_GET['progress_key'])) {    
  4.   $status = apc_fetch('upload_'.$_GET['progress_key']);    
  5.   echo ($status['current']/$status['total'])*100;    
  6. }    
  7. ?> 

upload.php,PHP Code:

  1. <?php    
  2.    $id = $_GET['id'];    
  3. ?>    
  4. <form enctype="multipart/form-data" id="upload_form" action="target.php" method="POST">    
  5. <input type="hidden" name="APC_UPLOAD_PROGRESS"     
  6.        id="progress_key"  value="<?php echo $id?>"/>    
  7. <input type="file" id="test_file" name="test_file"/><br/>    
  8. <input onclick="window.parent.startProgress(); return true;"    
  9.  type="submit" value="上傳"/>    
  10. </form> 

target.php,代碼如下:

  1. <?php      
  2. set_time_limit(600);    
  3. if($_SERVER['REQUEST_METHOD']=='POST') {    
  4.   move_uploaded_file($_FILES["test_file"]["tmp_name"],     
  5.   dirname($_SERVER['SCRIPT_FILENAME'])."/UploadTemp/" . $_FILES["test_file"]["name"]);//UploadTemp文件夾位于此腳本相同目錄下    
  6.   echo "<p>上傳成功</p>";    
  7. }    
  8. ?> 

index.php,代碼如下:

  1. <?php    
  2.    $id = md5(uniqid(rand(), true));    
  3. ?>    
  4. <html>    
  5. <head><title>上傳進(jìn)度</title></head>    
  6. <body>    
  7. <script src="js/jquery-1.4.4.min.js" language="javascript"></script>    
  8.     
  9.     
  10. <script language="javascript">    
  11. var proNum=0;    
  12. var loop=0;    
  13. var progressResult;    
  14. function sendURL() {    
  15.             $.ajax({    
  16.                         type : 'GET',    
  17.                         url : "getprogress.php?progress_key=<?php echo $id;?>",    
  18.                         async : true,    
  19.                         cache : false,    
  20.                         dataType : 'json',    
  21.                         data: "progress_key=<?php echo $id;?>",    
  22.                         success : function(e) {    
  23.                                      progressResult = e;    
  24.                                       proNum=parseInt(progressResult);    
  25.                                       document.getElementById("progressinner").style.width = proNum+"%";    
  26.                                       document.getElementById("showNum").innerHTML = proNum+"%";    
  27.                                       if ( proNum < 100){    
  28.                                         setTimeout("getProgress()", 100);    
  29.                                       }     
  30.                                      
  31.                         }    
  32.             });    
  33.       
  34. }    
  35.     
  36. function getProgress(){    
  37.  loop++;    
  38.     
  39.  sendURL();    
  40. }    
  41. var interval;    
  42. function startProgress(){    
  43.     document.getElementById("progressouter").style.display="block";    
  44.    setTimeout("getProgress()", 100);    
  45. }    
  46. </script>    
  47. <iframe id="theframe" name="theframe"     
  48.         src="upload.php?id=<?php echo $id; ?>"     
  49.         style="border: none; height: 100px; width: 400px;" >     
  50. </iframe>    
  51. <br/><br/>    
  52. <div id="progressouter" style="width: 500px; height: 20px; border: 6px solid red; display:none;">    
  53.    <div id="progressinner" style="position: relative; height: 20px; background-color: purple; width: 0%; "></div>    
  54. </div>//開源代碼Vevb.com 
  55. <div id='showNum'></div><br>    
  56. <div id='showNum2'></div>    
  57. </body>    
  58. </html>

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 吉木乃县| 花莲市| 上栗县| 集贤县| 含山县| 长岭县| 庆阳市| 江源县| 林口县| 微山县| 韶关市| 田东县| 新丰县| 娱乐| 塘沽区| 伊宁市| 边坝县| 建始县| 武强县| 始兴县| 仁布县| 邓州市| 玉溪市| 安国市| 池州市| 安福县| 哈巴河县| 和龙市| 樟树市| 肇东市| 正定县| 南皮县| 禹城市| 福清市| 扎鲁特旗| 宁晋县| 富锦市| 临武县| 呼图壁县| 嵊州市| 新干县|