Blame view

pma/libraries/display_import_ajax.lib.php 2.15 KB
a1684257   Administrator   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
  <?php
  /* vim: set expandtab sw=4 ts=4 sts=4: */
  /**
  *
  * @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
    */
  $plugins = array(
         "uploadprogress",
         "apc",
         "noplugin"
         ); // available plugins. Each plugin has own checkfunction in display_import_ajax.lib.php and own file with functions in upload_#KEY#.php
  
  // select available plugin
  foreach ($plugins as $plugin) {
      $check = "PMA_import_" . $plugin . "Check";
  
      if ($check()) {
          $_SESSION[$SESSION_KEY]["handler"] = $plugin;
          include_once "import/upload/" . $plugin . ".php";
          break;
      }
  }
  
  /**
    * Checks if APC bar extension is available and configured correctly.
    *
    * @return 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 true if UploadProgress extension is available, false if it is not
    */
  function PMA_import_uploadprogressCheck()
  {
      if (! function_exists("uploadprogress_get_info") || ! function_exists('getallheaders')) {
          return false;
      }
      return true;
  }
  /**
    * Default plugin for handling import. If no other plugin is available, noplugin is used.
    *
    * @return 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 $id - ID of transfer, usually $upload_id from display_import_ajax.lib.php
    */
  function PMA_importAjaxStatus($id)
  {
      header('Content-type: application/json');
      echo json_encode(PMA_getUploadStatus($id));
  }
  ?>