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

数据库编程

开发平台:

Visual C++

  1. #####
  2. #  FCKeditor - The text editor for Internet - http://www.fckeditor.net
  3. #  Copyright (C) 2003-2007 Frederico Caldeira Knabben
  4. #
  5. #  == BEGIN LICENSE ==
  6. #
  7. #  Licensed under the terms of any of the following licenses at your
  8. #  choice:
  9. #
  10. #   - GNU General Public License Version 2 or later (the "GPL")
  11. #     http://www.gnu.org/licenses/gpl.html
  12. #
  13. #   - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
  14. #     http://www.gnu.org/licenses/lgpl.html
  15. #
  16. #   - Mozilla Public License Version 1.1 or later (the "MPL")
  17. #     http://www.mozilla.org/MPL/MPL-1.1.html
  18. #
  19. #  == END LICENSE ==
  20. #
  21. #  This is the File Manager Connector for Perl.
  22. #####
  23. sub GetFolders
  24. {
  25. local($resourceType, $currentFolder) = @_;
  26. # Map the virtual path to the local server path.
  27. $sServerDir = &ServerMapFolder($resourceType, $currentFolder);
  28. print "<Folders>"; # Open the "Folders" node.
  29. opendir(DIR,"$sServerDir");
  30. @files = grep(!/^..?$/,readdir(DIR));
  31. closedir(DIR);
  32. foreach $sFile (@files) {
  33. if($sFile != '.' && $sFile != '..' && (-d "$sServerDir$sFile")) {
  34. $cnv_filename = &ConvertToXmlAttribute($sFile);
  35. print '<Folder name="' . $cnv_filename . '" />';
  36. }
  37. }
  38. print "</Folders>"; # Close the "Folders" node.
  39. }
  40. sub GetFoldersAndFiles
  41. {
  42. local($resourceType, $currentFolder) = @_;
  43. # Map the virtual path to the local server path.
  44. $sServerDir = &ServerMapFolder($resourceType,$currentFolder);
  45. # Initialize the output buffers for "Folders" and "Files".
  46. $sFolders = '<Folders>';
  47. $sFiles = '<Files>';
  48. opendir(DIR,"$sServerDir");
  49. @files = grep(!/^..?$/,readdir(DIR));
  50. closedir(DIR);
  51. foreach $sFile (@files) {
  52. if($sFile ne '.' && $sFile ne '..') {
  53. if(-d "$sServerDir$sFile") {
  54. $cnv_filename = &ConvertToXmlAttribute($sFile);
  55. $sFolders .= '<Folder name="' . $cnv_filename . '" />' ;
  56. } else {
  57. ($iFileSize,$refdate,$filedate,$fileperm) = (stat("$sServerDir$sFile"))[7,8,9,2];
  58. if($iFileSize > 0) {
  59. $iFileSize = int($iFileSize / 1024);
  60. if($iFileSize < 1) {
  61. $iFileSize = 1;
  62. }
  63. }
  64. $cnv_filename = &ConvertToXmlAttribute($sFile);
  65. $sFiles .= '<File name="' . $cnv_filename . '" size="' . $iFileSize . '" />' ;
  66. }
  67. }
  68. }
  69. print $sFolders ;
  70. print '</Folders>'; # Close the "Folders" node.
  71. print $sFiles ;
  72. print '</Files>'; # Close the "Files" node.
  73. }
  74. sub CreateFolder
  75. {
  76. local($resourceType, $currentFolder) = @_;
  77. $sErrorNumber = '0' ;
  78. $sErrorMsg = '' ;
  79. if($FORM{'NewFolderName'} ne "") {
  80. $sNewFolderName = $FORM{'NewFolderName'};
  81. # Map the virtual path to the local server path of the current folder.
  82. $sServerDir = &ServerMapFolder($resourceType, $currentFolder);
  83. if(-w $sServerDir) {
  84. $sServerDir .= $sNewFolderName;
  85. $sErrorMsg = &CreateServerFolder($sServerDir);
  86. if($sErrorMsg == 0) {
  87. $sErrorNumber = '0';
  88. } elsif($sErrorMsg eq 'Invalid argument' || $sErrorMsg eq 'No such file or directory') {
  89. $sErrorNumber = '102'; #// Path too long.
  90. } else {
  91. $sErrorNumber = '110';
  92. }
  93. } else {
  94. $sErrorNumber = '103';
  95. }
  96. } else {
  97. $sErrorNumber = '102' ;
  98. }
  99. # Create the "Error" node.
  100. $cnv_errmsg = &ConvertToXmlAttribute($sErrorMsg);
  101. print '<Error number="' . $sErrorNumber . '" originalDescription="' . $cnv_errmsg . '" />';
  102. }
  103. sub FileUpload
  104. {
  105. eval("use File::Copy;");
  106. local($resourceType, $currentFolder) = @_;
  107. $sErrorNumber = '0' ;
  108. $sFileName = '' ;
  109. if($new_fname) {
  110. # Map the virtual path to the local server path.
  111. $sServerDir = &ServerMapFolder($resourceType,$currentFolder);
  112. # Get the uploaded file name.
  113. $sFileName = $new_fname;
  114. $sOriginalFileName = $sFileName;
  115. $iCounter = 0;
  116. while(1) {
  117. $sFilePath = $sServerDir . $sFileName;
  118. if(-e $sFilePath) {
  119. $iCounter++ ;
  120. ($path,$BaseName,$ext) = &RemoveExtension($sOriginalFileName);
  121. $sFileName = $BaseName . '(' . $iCounter . ').' . $ext;
  122. $sErrorNumber = '201';
  123. } else {
  124. copy("$img_dir/$new_fname","$sFilePath");
  125. chmod(0777,$sFilePath);
  126. unlink("$img_dir/$new_fname");
  127. last;
  128. }
  129. }
  130. } else {
  131. $sErrorNumber = '202' ;
  132. }
  133. $sFileName =~ s/"/\"/g;
  134. SendUploadResults($sErrorNumber, $resourceType.$currentFolder.$sFileName, $sFileName, '');
  135. }
  136. sub SendUploadResults
  137. {
  138. local($sErrorNumber, $sFileUrl, $sFileName, $customMsg) = @_;
  139. print "Content-type: text/htmlnn";
  140. print '<script type="text/javascript">';
  141. print 'window.parent.OnUploadCompleted(' . $sErrorNumber . ',"' . JS_cnv($sFileUrl) . '","' . JS_cnv($sFileName) . '","' . JS_cnv($customMsg) . '") ;';
  142. print '</script>';
  143. exit ;
  144. }
  145. 1;