cvs: pear /HTML_Progress2/Progress2 Upload.php

[email protected] ("Laurent Laville")
Newsgroups php.pear.cvs
Message-ID <cvsfarell1208817505@cvsserver>
farell		Mon Apr 21 22:38:25 2008 UTC

  Modified files:              
    /pear/HTML_Progress2/Progress2	Upload.php 
  Log:
  * add new formats %S - speed  limit, %E - time left, %F - current filename 
  * drop support of upload_progress PHP4 patch 
  
  
http://cvs.php.net/viewvc.cgi/pear/HTML_Progress2/Progress2/Upload.php?r1=1.6&r2=1.7&diff_format=u
Index: pear/HTML_Progress2/Progress2/Upload.php
diff -u pear/HTML_Progress2/Progress2/Upload.php:1.6 pear/HTML_Progress2/Progress2/Upload.php:1.7
--- pear/HTML_Progress2/Progress2/Upload.php:1.6	Sat Apr 19 17:26:12 2008
+++ pear/HTML_Progress2/Progress2/Upload.php	Mon Apr 21 22:38:25 2008
@@ -36,7 +36,7 @@
  * @author    Laurent Laville <[email protected]>
  * @copyright 2007-2008 Laurent Laville
  * @license   http://www.opensource.org/licenses/bsd-license.php  New BSD License
- * @version   CVS: $Id: Upload.php,v 1.6 2008/04/19 17:26:12 farell Exp $
+ * @version   CVS: $Id: Upload.php,v 1.7 2008/04/21 22:38:25 farell Exp $
  * @link      http://pear.php.net/package/HTML_Progress2
  * @since     File available since Release 2.3.0RC1
  */
@@ -61,7 +61,6 @@
      * Backend identifier are either :
      * 'none' - if nothing else below match
      * 'apc5' - APC php extension with PHP5.2.0 or greater
-     * 'upm4' - upload progress meter php extension with PHP4
      * 'upm5' - upload progress meter php extension with PHP5.2.0 or greater
      *
      * @var        string
@@ -78,6 +77,9 @@
      *  T - for display total file size
      *  C - for display current file size uploaded
      *  P - for display percentage of file size uploaded
+     *  F - for display file name to upload
+     *  E - for estimate time left
+     *  S - for speed limit
      *
      * @var        string
      * @since      2.3.0RC1
@@ -100,9 +102,7 @@
     {
         $php5 = (version_compare(phpversion(), '5.2.0', 'ge') < 0) ? false : true;
 
-        if (extension_loaded('upload_progress_meter')) {
-            $this->backend = 'upm4';
-        } elseif (extension_loaded('uploadprogress') && $php5) {
+        if (extension_loaded('uploadprogress') && $php5) {
             $this->backend = 'upm5';
         } elseif (extension_loaded('apc') && $php5) {
             $this->backend = 'apc5';
@@ -137,18 +137,11 @@
             );
 
         switch ($this->backend) {
-        case 'upm4':
-            $tmp = upload_progress_meter_get_info($Id);
-            if (is_array($tmp)) {
-                $info = array_merge($info, $tmp);
-            } else {
-                $info = false;
-            }
-            break;
         case 'upm5':
             $tmp = uploadprogress_get_info($Id);
             if (is_array($tmp)) {
-                $info = array_merge($info, $tmp);
+                $info                 = array_merge($info, $tmp);
+                $info['current_file'] = $tmp['filename'];
             } else {
                 $info = false;
             }
@@ -182,6 +175,8 @@
      *  C - for display current file size uploaded
      *  P - for display percentage of file size uploaded
      *  F - for display file name to upload
+     *  E - for estimate time left
+     *  S - for speed limit
      *
      * @param string $format conversion specification
      * @param array  $info   current upload information
@@ -220,6 +215,19 @@
         if ($pos !== false) {
             $format = str_replace('%F', $info['current_file'], $format);
         }
+        $pos = strpos($format, '%E');
+        if ($pos !== false
+            && $info['est_sec'] > 0) {
+            $eta    = sprintf("%02d:%02d",
+                              $info['est_sec'] / 60, $info['est_sec'] % 60);
+            $format = str_replace('%E', $eta, $format);
+        }
+
+        $pos = strpos($format, '%S');
+        if ($pos !== false) {
+            $speed  = $this->formatBytes($info['speed_average']);
+            $format = str_replace('%S', $speed, $format);
+        }
         return $format;
     }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.