ホームページ  >  記事  >  php教程  >  PHP は APC と連携してアップロードの進行状況バーを実装します

PHP は APC と連携してアップロードの進行状況バーを実装します

WBOY
WBOYオリジナル
2016-06-21 08:50:53914ブラウズ

PHP は apc と連携してアップロード プログレス バーを実装します。PHP ではプログレス バーの動的機能を実現できないと思っていましたが、apc 拡張機能に関する記事をいくつか見て、apc 拡張機能を使用したことがわかりました。ダイナミックな効果を実現します。関連する記事を見つけたので、それに基づいていくつかの修正を加えました。自分のサーバーで使用しているウィンドウは主にウィンドウ上のアプリケーションを対象としています。
1. サーバーは apc 拡張機能をサポートしている必要があります。そのような拡張機能がない場合は、Baidu で php_apc.dll を検索し、拡張機能をダウンロードする必要があります。
2. APC 関連の設定を行い、Apache を再起動します

PHP コード

  1. 拡張子=php_apc.dll
  2. apc.rfc1867 = オン
  3. apc.max_file_size = 1000M
  4. アップロード_最大ファイルサイズ = 1000M
  5. 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 コード

  1. セッション開始();
  2. if(isset($_GET['progress_key'])) {
  3. $status = apc_fetch('upload_'.$_GET['progress_key']);
  4. echo ($status['current']/$status['total'])*100;
  5. }
  6. ?>

アップロード.php

PHP コード

    $id = $_GET['id']
  1. ?>
  2. ;

  3. type="submit" value="upload"/>
  4. target.php

    PHP コード

    set_time_limit(600);

      if($_SERVER['REQUEST_METHOD']=='POST') {
    1. move_uploaded_file($_FILES["test_file"]["tmp_name"],
    2. dirname($_SERVER['SCRIPT_FILENAME'])."/UploadTemp/" . $_FILES["test_file"]["name"]);//UploadTemp フォルダーはこのスクリプトと同じディレクトリにあります
    3. echo "

      正常にアップロードされました

      ";

    4. }
    5. ?>
    6. Index.php
    7. PHP コード

      1.    $id = md5(uniqid(rand(), true));  
      2. ?>  
      3.   
      4. 上向き  
      5.   
      6.   
      7.   
      8.   
      9. <スクリプト言語="javascript">  
      10. var proNum=0;  
      11. var loop=0;  
      12. var progressResult;  
      13. 関数 sendURL() {
      14.             $.ajax({
      15.                         「GET」、
      16. と入力します。
      17.                         URL : "getprogress.php?progress_key=",
      18.                         非同期: true、
      19.                         キャッシュ : false,
      20.                         データ型: 「json」、
      21.                         データ: "progress_key=",
      22.                         成功 : 関数(e) {
      23.                                      progressResult = e;  
      24.                                       proNum=parseInt(progressResult);  
      25.                                       document.getElementById("progressinner").style.width = proNum+"%";  
      26.                                       document.getElementById("showNum").innerHTML = proNum+"%";  
      27.                                       if ( proNum
      28.                                         setTimeout("getProgress()", 100);  
      29.                                       }   
      30.                                    
      31.                         }
      32.             });  
      33.     
      34. }
      35.   
      36. function getProgress(){
      37.  ループ++;  
      38.   
      39.  sendURL();  
      40. }
      41. var 間隔;  
      42. 関数 startProgress(){
      43.     document.getElementById("progressouter").style.display="ブロック";  
      44.    setTimeout("getProgress()", 100);  
      45. }
      46.   
      47.   


      48.   
      49.    
          
  

  •   
  •   
  •   
  •   


  • 声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    前の記事:かなり包括的な PHP 検証コード クラス次の記事:かなり包括的な PHP 検証コード クラス

    関連記事

    続きを見る