summaryrefslogtreecommitdiff
path: root/hugo/libraries/plugins/import/upload/UploadProgress.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'hugo/libraries/plugins/import/upload/UploadProgress.class.php')
-rw-r--r--hugo/libraries/plugins/import/upload/UploadProgress.class.php94
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