renameDesktopFile.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. include '../auth.php';
  3. if (isset($_POST['filename']) && $_POST['filename'] != ""){
  4. if (isset($_GET['username']) && $_GET['username'] != ""){
  5. if (isset($_POST['newfilename']) && $_POST['newfilename'] != ""){
  6. $filename = "files/" . $_GET['username'] . "/" . json_decode($_POST['filename']);
  7. $newfilename = "files/" . $_GET['username'] . "/" . json_decode($_POST['newfilename']);
  8. $resultFilename = "";
  9. if (file_exists($filename)){
  10. $newfn = json_decode($_POST['newfilename']);
  11. $ext = pathinfo($newfn, PATHINFO_EXTENSION);
  12. if (pathinfo($filename, PATHINFO_EXTENSION) == "shortcut"){
  13. //This is a shortcut. Edit the 2nd line of the shortcut file for renaming a shortcut
  14. $shortcutLink = file_get_contents($filename);
  15. $data = explode(PHP_EOL,$shortcutLink);
  16. $data[1] = explode(".",$newfn)[0]; //use to remove any "." in the string
  17. $shortcutLink = implode(PHP_EOL,$data);
  18. file_put_contents($filename, $shortcutLink,LOCK_EX);
  19. header('Content-Type: application/json');
  20. echo json_encode($filename);
  21. exit(0);
  22. }
  23. if (preg_match('/[^A-Za-z0-9.]/', json_decode($_POST['newfilename']))){
  24. if (is_file($filename)){
  25. $filenameonly = str_replace("." . $ext,"",$newfn);
  26. $encodedFilename = "inith" . bin2hex($filenameonly) . "." . $ext;
  27. $newfilename = "files/" . $_GET['username'] . "/" . $encodedFilename;
  28. if (file_exists($newfilename)){
  29. die("ERROR. Rename target already exists.");
  30. }
  31. }else if (is_dir($filename)){
  32. $newfn = json_decode($_POST['newfilename']);
  33. $encodedFilename =bin2hex($newfn);
  34. $newfilename = "files/" . $_GET['username'] . "/" . $encodedFilename;
  35. if (file_exists($newfilename)){
  36. die("ERROR. Rename target already exists.");
  37. }
  38. }
  39. rename($filename,$newfilename);
  40. $resultFilename = $encodedFilename;
  41. }else{
  42. if (file_exists($newfilename)){
  43. die("ERROR. Rename target already exists.");
  44. }
  45. rename($filename,$newfilename);
  46. $resultFilename = json_decode($_POST['newfilename']);
  47. }
  48. header('Content-Type: application/json');
  49. echo json_encode($resultFilename);
  50. }else{
  51. die("ERROR. Rename source not exists. " . $filename . " was given.");
  52. }
  53. }else{
  54. die("ERROR. Undefined newfilename");
  55. }
  56. }else{
  57. die("ERROR. Undefined username");
  58. }
  59. }else{
  60. die("ERROR. Undefined filename");
  61. }
  62. ?>