commands.pl
上传用户:li2971742
上传日期:2021-11-18
资源大小:39096k
文件大小:4k
源码类别:

OA系统

开发平台:

C#

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