fm_api.php 3.8 KB

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