fm_api.php 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. // Init
  3. //error_reporting(NULL);
  4. header('Content-Type: application/json');
  5. include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
  6. include($_SERVER['DOCUMENT_ROOT']."/file_manager/fm_core.php");
  7. // todo: set in session?
  8. if (empty($panel)) {
  9. $command = VESTA_CMD."v-list-user '".$user."' 'json'";
  10. exec ($command, $output, $return_var);
  11. if ( $return_var > 0 ) {
  12. header("Location: /error/");
  13. exit;
  14. }
  15. $panel = json_decode(implode('', $output), true);
  16. }
  17. $fm = new FileManager($user);
  18. $fm->setRootDir($panel[$user]['HOME']);
  19. $_REQUEST['action'] = empty($_REQUEST['action']) ? '' : $_REQUEST['action'];
  20. switch ($_REQUEST['action']) {
  21. case 'cd':
  22. $dir = $_REQUEST['dir'];
  23. print json_encode($fm->ls($dir));
  24. break;
  25. case 'check_file_type':
  26. $dir = $_REQUEST['dir'];
  27. print json_encode($fm->checkFileType($dir));
  28. break;
  29. case 'rename_file':
  30. $dir = $_REQUEST['dir'];
  31. $item = $dir . '/' . $_REQUEST['item'];
  32. $target_name = $dir . '/' . $_REQUEST['target_name'];
  33. print json_encode($fm->renameFile($item, $target_name));
  34. break;
  35. case 'rename_directory':
  36. $dir = $_REQUEST['dir'];
  37. $item = $dir.$_REQUEST['item'];
  38. $target_name = $dir.$_REQUEST['target_name'];
  39. print json_encode($fm->renameDirectory($item, $target_name));
  40. break;
  41. case 'move_file':
  42. $item = $_REQUEST['item'];
  43. $target_name = $_REQUEST['target_name'];
  44. print json_encode($fm->renameFile($item, $target_name));
  45. break;
  46. case 'move_directory':
  47. $item = $_REQUEST['item'];
  48. $target_name = $_REQUEST['target_name'];
  49. print json_encode($fm->renameDirectory($item, $target_name));
  50. break;
  51. case 'delete_files':
  52. $dir = $_REQUEST['dir'];
  53. $item = $_REQUEST['item'];
  54. print json_encode($fm->deleteItem($dir, $item));
  55. break;
  56. case 'create_file':
  57. $dir = $_REQUEST['dir'];
  58. $filename = $_REQUEST['filename'];
  59. print json_encode($fm->createFile($dir, $filename));
  60. break;
  61. case 'create_dir':
  62. $dir = $_REQUEST['dir'];
  63. $dirname = $_REQUEST['dirname'];
  64. print json_encode($fm->createDir($dir, $dirname));
  65. break;
  66. case 'open_file':
  67. $dir = $_REQUEST['dir'];
  68. print json_encode($fm->open_file($dir));
  69. break;
  70. case 'copy_file':
  71. $dir = $_REQUEST['dir'];
  72. $target_dir = $_REQUEST['dir_target'];
  73. $filename = $_REQUEST['filename'];
  74. $item = $_REQUEST['item'];
  75. print json_encode($fm->copyFile($item, $dir, $target_dir, $filename));
  76. break;
  77. case 'copy_directory':
  78. $dir = $_REQUEST['dir'];
  79. $target_dir = $_REQUEST['dir_target'];
  80. $filename = $_REQUEST['filename'];
  81. $item = $_REQUEST['item'];
  82. print json_encode($fm->copyDirectory($item, $dir, $target_dir, $filename));
  83. break;
  84. case 'unpack_item':
  85. $dir = $_REQUEST['dir'];
  86. $target_dir = $_REQUEST['dir_target'];
  87. $filename = $_REQUEST['filename'];
  88. $item = $_REQUEST['item'];
  89. print json_encode($fm->unpackItem($item, $dir, $target_dir, $filename));
  90. break;
  91. case 'pack_item':
  92. $items = $_REQUEST['items'];
  93. $dst_item = $_REQUEST['dst_item'];
  94. print json_encode($fm->packItem($items, $dst_item));
  95. break;
  96. case 'backup':
  97. $path = $_REQUEST['path'];
  98. print json_encode($fm->backupItem($path));
  99. break;
  100. case 'chmod_item':
  101. $dir = $_REQUEST['dir'];
  102. $item = $_REQUEST['item'];
  103. $permissions = $_REQUEST['permissions'];
  104. print json_encode($fm->chmodItem($dir, $item, $permissions));
  105. break;
  106. default:
  107. //print json_encode($fm->init());
  108. break;
  109. }