Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Foellmann <foellmann@foe-services.de>2014-04-05 17:35:38 +0400
committerChristian Foellmann <foellmann@foe-services.de>2014-04-05 17:35:38 +0400
commit9eb27ef6ebc763ddc6f6278462b8ffeed6de0e36 (patch)
treed3b4a1c7ae68cafb05b9d60040c9c22d457cee62 /libraries/display_import_ajax.lib.php
parentd472216554769ba596795f23a70c1809fa8897a3 (diff)
INIT phpmyadmin 4.1.12 multilanguage
Diffstat (limited to 'libraries/display_import_ajax.lib.php')
-rw-r--r--libraries/display_import_ajax.lib.php129
1 files changed, 129 insertions, 0 deletions
diff --git a/libraries/display_import_ajax.lib.php b/libraries/display_import_ajax.lib.php
new file mode 100644
index 0000000000..275db02a7d
--- /dev/null
+++ b/libraries/display_import_ajax.lib.php
@@ -0,0 +1,129 @@
+<?php
+/* vim: set expandtab sw=4 ts=4 sts=4: */
+/**
+* Handles plugins that show the upload progress
+*
+* @package PhpMyAdmin
+*/
+if (! defined('PHPMYADMIN')) {
+ exit;
+}
+
+/**
+ * constant for differenciating array in $_SESSION variable
+ */
+$SESSION_KEY = '__upload_status';
+
+/**
+ * sets default plugin for handling the import process
+ */
+$_SESSION[$SESSION_KEY]["handler"] = "";
+
+/**
+ * unique ID for each upload
+ */
+$upload_id = uniqid("");
+
+/**
+ * list of available plugins
+ *
+ * Each plugin has own checkfunction in display_import_ajax.lib.php
+ * and own file with functions in upload_#KEY#.php
+ */
+$plugins = array(
+ // PHP 5.4 session-based upload progress is problematic, see bug 3964
+ //"session",
+ "progress",
+ "apc",
+ "noplugin"
+);
+
+// select available plugin
+foreach ($plugins as $plugin) {
+ $check = "PMA_Import_" . $plugin . "Check";
+
+ if ($check()) {
+ $upload_class = "Upload" . ucwords($plugin);
+ $_SESSION[$SESSION_KEY]["handler"] = $upload_class;
+ include_once "plugins/import/upload/" . $upload_class . ".class.php";
+ break;
+ }
+}
+
+/**
+ * Checks if APC bar extension is available and configured correctly.
+ *
+ * @return boolean true if APC extension is available and if rfc1867 is enabled,
+ * false if it is not
+ */
+function PMA_Import_apcCheck()
+{
+ if (! extension_loaded('apc')
+ || ! function_exists('apc_fetch')
+ || ! function_exists('getallheaders')
+ ) {
+ return false;
+ }
+ return (ini_get('apc.enabled') && ini_get('apc.rfc1867'));
+}
+
+/**
+ * Checks if UploadProgress bar extension is available.
+ *
+ * @return boolean true if UploadProgress extension is available,
+ * false if it is not
+ */
+function PMA_Import_progressCheck()
+{
+ if (! function_exists("uploadprogress_get_info")
+ || ! function_exists('getallheaders')
+ ) {
+ return false;
+ }
+ return true;
+}
+
+/**
+ * Checks if PHP 5.4 session upload-progress feature is available.
+ *
+ * @return boolean true if PHP 5.4 session upload-progress is available,
+ * false if it is not
+ */
+function PMA_Import_sessionCheck()
+{
+ if (PMA_PHP_INT_VERSION < 50400
+ || ! ini_get('session.upload_progress.enabled')
+ ) {
+ return false;
+ }
+ return true;
+}
+
+/**
+ * Default plugin for handling import.
+ * If no other plugin is available, noplugin is used.
+ *
+ * @return boolean true
+ */
+function PMA_Import_nopluginCheck()
+{
+ return true;
+}
+
+/**
+ * The function outputs json encoded status of uploaded.
+ * It uses PMA_getUploadStatus, which is defined in plugin's file.
+ *
+ * @param string $id ID of transfer, usually $upload_id
+ * from display_import_ajax.lib.php
+ *
+ * @return void
+ */
+function PMA_importAjaxStatus($id)
+{
+ header('Content-type: application/json');
+ echo json_encode(
+ $_SESSION[$GLOBALS['SESSION_KEY']]['handler']::getUploadStatus($id)
+ );
+}
+?>