connector.cgi
上传用户:ah_jiwei
上传日期:2022-07-24
资源大小:54044k
文件大小:4k
源码类别:

数据库编程

开发平台:

Visual C++

  1. #!/usr/bin/env perl
  2. #####
  3. #  FCKeditor - The text editor for Internet - http://www.fckeditor.net
  4. #  Copyright (C) 2003-2007 Frederico Caldeira Knabben
  5. #
  6. #  == BEGIN LICENSE ==
  7. #
  8. #  Licensed under the terms of any of the following licenses at your
  9. #  choice:
  10. #
  11. #   - GNU General Public License Version 2 or later (the "GPL")
  12. #     http://www.gnu.org/licenses/gpl.html
  13. #
  14. #   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
  15. #     http://www.gnu.org/licenses/lgpl.html
  16. #
  17. #   - Mozilla Public License Version 1.1 or later (the "MPL")
  18. #     http://www.mozilla.org/MPL/MPL-1.1.html
  19. #
  20. #  == END LICENSE ==
  21. #
  22. #  This is the File Manager Connector for Perl.
  23. #####
  24. ##
  25. # ATTENTION: To enable this connector, look for the "SECURITY" comment in this file.
  26. ##
  27. ## START: Hack for Windows (Not important to understand the editor code... Perl specific).
  28. if(Windows_check()) {
  29. chdir(GetScriptPath($0));
  30. }
  31. sub Windows_check
  32. {
  33. # IIS,PWS(NT/95)
  34. $www_server_os = $^O;
  35. # Win98 & NT(SP4)
  36. if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; }
  37. # AnHTTPd/Omni/IIS
  38. if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS//i) { $www_server_os= 'win'; }
  39. # Win Apache
  40. if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; }
  41. if($www_server_os=~ /win/i) { return(1); }
  42. return(0);
  43. }
  44. sub GetScriptPath {
  45. local($path) = @_;
  46. if($path =~ /[:/\]/) { $path =~ s/(.*?)[/\][^/\]+$/$1/; } else { $path = '.'; }
  47. $path;
  48. }
  49. ## END: Hack for IIS
  50. require 'util.pl';
  51. require 'io.pl';
  52. require 'basexml.pl';
  53. require 'commands.pl';
  54. require 'upload_fck.pl';
  55. ##
  56. # SECURITY: REMOVE/COMMENT THE FOLLOWING LINE TO ENABLE THIS CONNECTOR.
  57. ##
  58. &SendError( 1, 'This connector is disabled. Please check the "editor/filemanager/connectors/perl/connector.cgi" file' ) ;
  59. &read_input();
  60. if($FORM{'ServerPath'} ne "") {
  61. $GLOBALS{'UserFilesPath'} = $FORM{'ServerPath'};
  62. if(!($GLOBALS{'UserFilesPath'} =~ //$/)) {
  63. $GLOBALS{'UserFilesPath'} .= '/' ;
  64. }
  65. } else {
  66. $GLOBALS{'UserFilesPath'} = '/userfiles/';
  67. }
  68. # Map the "UserFiles" path to a local directory.
  69. $rootpath = &GetRootPath();
  70. $GLOBALS{'UserFilesDirectory'} = $rootpath . $GLOBALS{'UserFilesPath'};
  71. &DoResponse();
  72. sub DoResponse
  73. {
  74. if($FORM{'Command'} eq "" || $FORM{'Type'} eq "" || $FORM{'CurrentFolder'} eq "") {
  75. return ;
  76. }
  77. # Get the main request informaiton.
  78. $sCommand = $FORM{'Command'};
  79. $sResourceType = $FORM{'Type'};
  80. $sCurrentFolder = $FORM{'CurrentFolder'};
  81. # Check the current folder syntax (must begin and start with a slash).
  82. if(!($sCurrentFolder =~ //$/)) {
  83. $sCurrentFolder .= '/';
  84. }
  85. if(!($sCurrentFolder =~ /^//)) {
  86. $sCurrentFolder = '/' . $sCurrentFolder;
  87. }
  88. # Check for invalid folder paths (..)
  89. if ( $sCurrentFolder =~ /../ ) {
  90. SendError( 102, "" ) ;
  91. }
  92. # File Upload doesn't have to Return XML, so it must be intercepted before anything.
  93. if($sCommand eq 'FileUpload') {
  94. FileUpload($sResourceType,$sCurrentFolder);
  95. return ;
  96. }
  97. print << "_HTML_HEAD_";
  98. Content-Type:text/xml; charset=utf-8
  99. Pragma: no-cache
  100. Cache-Control: no-cache
  101. Expires: Thu, 01 Dec 1994 16:00:00 GMT
  102. _HTML_HEAD_
  103. &CreateXmlHeader($sCommand,$sResourceType,$sCurrentFolder);
  104. # Execute the required command.
  105. if($sCommand eq 'GetFolders') {
  106. &GetFolders($sResourceType,$sCurrentFolder);
  107. } elsif($sCommand eq 'GetFoldersAndFiles') {
  108. &GetFoldersAndFiles($sResourceType,$sCurrentFolder);
  109. } elsif($sCommand eq 'CreateFolder') {
  110. &CreateFolder($sResourceType,$sCurrentFolder);
  111. }
  112. &CreateXmlFooter();
  113. exit ;
  114. }