fm_api.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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. $return_var = v_exec('v-list-user', [$user, 'json'], false, $output);
  9. if ($return_var > 0) {
  10. header("Location: /error/");
  11. exit;
  12. }
  13. $panel = json_decode($output, true);
  14. }
  15. $fm = new FileManager($user);
  16. $fm->setRootDir($panel[$user]['HOME']);
  17. $_REQUEST['action'] = empty($_REQUEST['action']) ? '' : $_REQUEST['action'];
  18. switch ($_REQUEST['action']) {
  19. case 'cd':
  20. $dir = $_REQUEST['dir'];
  21. print json_encode($fm->ls($dir));
  22. break;
  23. case 'check_file_type':
  24. $dir = $_REQUEST['dir'];
  25. print json_encode($fm->checkFileType($dir));
  26. break;
  27. case 'rename_file':
  28. $dir = $_REQUEST['dir'];
  29. $item = $_REQUEST['item'];
  30. $target_name = $_REQUEST['target_name'];
  31. print json_encode($fm->renameFile($dir, $item, $target_name));
  32. break;
  33. case 'rename_directory':
  34. $dir = $_REQUEST['dir'];
  35. $item = $_REQUEST['item'];
  36. $target_name = $_REQUEST['target_name'];
  37. print json_encode($fm->renameDirectory($dir, $item, $target_name));
  38. break;
  39. case 'delete_files':
  40. $dir = $_REQUEST['dir'];
  41. $item = $_REQUEST['item'];
  42. print json_encode($fm->deleteItem($dir, $item));
  43. break;
  44. case 'create_file':
  45. $dir = $_REQUEST['dir'];
  46. $filename = $_REQUEST['filename'];
  47. print json_encode($fm->createFile($dir, $filename));
  48. break;
  49. case 'create_dir':
  50. $dir = $_REQUEST['dir'];
  51. $dirname = $_REQUEST['dirname'];
  52. print json_encode($fm->createDir($dir, $dirname));
  53. break;
  54. case 'open_file':
  55. $dir = $_REQUEST['dir'];
  56. print json_encode($fm->open_file($dir));
  57. break;
  58. case 'copy_file':
  59. $dir = $_REQUEST['dir'];
  60. $target_dir = $_REQUEST['dir_target'];
  61. $filename = $_REQUEST['filename'];
  62. $item = $_REQUEST['item'];
  63. print json_encode($fm->copyFile($item, $dir, $target_dir, $filename));
  64. break;
  65. case 'copy_directory':
  66. $dir = $_REQUEST['dir'];
  67. $target_dir = $_REQUEST['dir_target'];
  68. $filename = $_REQUEST['filename'];
  69. $item = $_REQUEST['item'];
  70. print json_encode($fm->copyDirectory($item, $dir, $target_dir, $filename));
  71. break;
  72. case 'unpack_item':
  73. $dir = $_REQUEST['dir'];
  74. $target_dir = $_REQUEST['dir_target'];
  75. $filename = $_REQUEST['filename'];
  76. $item = $_REQUEST['item'];
  77. print json_encode($fm->unpackItem($item, $dir, $target_dir, $filename));
  78. break;
  79. case 'pack_item':
  80. $dir = $_REQUEST['dir'];
  81. $target_dir = $_REQUEST['dir_target'];
  82. $filename = $_REQUEST['filename'];
  83. $item = $_REQUEST['item'];
  84. print json_encode($fm->packItem($item, $dir, $target_dir, $filename));
  85. break;
  86. case 'backup':
  87. $path = $_REQUEST['path'];
  88. print json_encode($fm->backupItem($path));
  89. break;
  90. default:
  91. //print json_encode($fm->init());
  92. break;
  93. }