commands.pl
上传用户:wlfwy2004
上传日期:2016-12-12
资源大小:33978k
文件大小:4k
源码类别:

Jsp/Servlet

开发平台:

Java

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