diff options
Diffstat (limited to 'hugo/libraries/plugins/import/upload/UploadProgress.class.php')
| -rw-r--r-- | hugo/libraries/plugins/import/upload/UploadProgress.class.php | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/hugo/libraries/plugins/import/upload/UploadProgress.class.php b/hugo/libraries/plugins/import/upload/UploadProgress.class.php new file mode 100644 index 0000000..1a50776 --- /dev/null +++ b/hugo/libraries/plugins/import/upload/UploadProgress.class.php @@ -0,0 +1,94 @@ +<?php +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * Provides upload functionalities for the import plugins + * + * @package PhpMyAdmin + */ +if (! defined('PHPMYADMIN')) { + exit; +} + +/* Get the transformations interface */ +require_once 'libraries/plugins/UploadInterface.int.php'; + +/** + * Implementation for upload progress + * + * @package PhpMyAdmin + */ +class UploadProgress implements UploadInterface +{ + /** + * Gets the specific upload ID Key + * + * @return string ID Key + */ + public static function getIdKey() + { + return 'UPLOAD_IDENTIFIER'; + } + + /** + * Returns upload status. + * + * This is implementation for upload progress + * + * @param string $id upload id + * + * @return array|null + */ + public static function getUploadStatus($id) + { + global $SESSION_KEY; + + if (trim($id) == "") { + return null; + } + + if (! array_key_exists($id, $_SESSION[$SESSION_KEY])) { + $_SESSION[$SESSION_KEY][$id] = array( + 'id' => $id, + 'finished' => false, + 'percent' => 0, + 'total' => 0, + 'complete' => 0, + 'plugin' => UploadProgress::getIdKey() + ); + } + $ret = $_SESSION[$SESSION_KEY][$id]; + + if (! PMA_import_progressCheck() || $ret['finished']) { + return $ret; + } + + $status = uploadprogress_get_info($id); + + if ($status) { + if ($status['bytes_uploaded'] == $status['bytes_total']) { + $ret['finished'] = true; + } else { + $ret['finished'] = false; + } + $ret['total'] = $status['bytes_total']; + $ret['complete'] = $status['bytes_uploaded']; + + if ($ret['total'] > 0) { + $ret['percent'] = $ret['complete'] / $ret['total'] * 100; + } + } else { + $ret = array( + 'id' => $id, + 'finished' => true, + 'percent' => 100, + 'total' => $ret['total'], + 'complete' => $ret['total'], + 'plugin' => UploadProgress::getIdKey() + ); + } + + $_SESSION[$SESSION_KEY][$id] = $ret; + return $ret; + } +} +?>
\ No newline at end of file |
