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

数据库编程

开发平台:

Visual C++

  1. [//lasso
  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 Uploader" for Lasso.
  23.  */
  24.     /*.....................................................................
  25.     Include global configuration. See config.lasso for details.
  26.     */
  27. include('config.lasso');
  28.     /*.....................................................................
  29.     Convert query string parameters to variables and initialize output.
  30.     */
  31. var(
  32. 'Type' = action_param('Type'),
  33. 'CurrentFolder' = action_param('CurrentFolder'),
  34. 'ServerPath' = action_param('ServerPath'),
  35. 'NewFile' = null,
  36. 'NewFileName' = string,
  37. 'OrigFilePath' = string,
  38. 'NewFilePath' = string,
  39. 'errorNumber' = 0,
  40. 'customMsg' = ''
  41. );
  42. $Type == '' ? $Type = 'File';
  43.     /*.....................................................................
  44.     Calculate the path to the current folder.
  45.     */
  46. $ServerPath == '' ? $ServerPath = $config->find('UserFilesPath');
  47. var('currentFolderURL' = $ServerPath
  48. + $config->find('Subdirectories')->find(action_param('Type'))
  49. + action_param('CurrentFolder')
  50. );
  51. /*.....................................................................
  52. Custom tag sets the HTML response.
  53. */
  54. define_tag(
  55. 'sendresults',
  56. -namespace='fck_',
  57. -priority='replace',
  58. -required='errorNumber',
  59. -type='integer',
  60. -optional='fileUrl',
  61. -type='string',
  62. -optional='fileName',
  63. -type='string',
  64. -optional='customMsg',
  65. -type='string',
  66. -description='Sets the HTML response for the FCKEditor Quick Upload feature.'
  67. );
  68. $__html_reply__ = '
  69. <script type="text/javascript">
  70. window.parent.OnUploadCompleted(' + #errorNumber + ',"'
  71. + string_replace(#fileUrl, -find='"', -replace='\"') + '","'
  72. + string_replace(#fileName, -find='"', -replace='\"') + '","'
  73. + string_replace(#customMsg, -find='"', -replace='\"') + '");
  74. </script>
  75. ';
  76. /define_tag;
  77. if($config->find('Enabled'));
  78. /*.................................................................
  79. Process an uploaded file.
  80. */
  81. inline($connection);
  82. /*.............................................................
  83. Was a file actually uploaded?
  84. */
  85. file_uploads->size ? $NewFile = file_uploads->get(1) | $errorNumber = 202;
  86. if($errorNumber == 0);
  87. /*.........................................................
  88. Split the file's extension from the filename in order
  89. to follow the API's naming convention for duplicate
  90. files. (Test.txt, Test(1).txt, Test(2).txt, etc.)
  91. */
  92. $NewFileName = $NewFile->find('OrigName');
  93. $OrigFilePath = $currentFolderURL + $NewFileName;
  94. $NewFilePath = $OrigFilePath;
  95. local('fileExtension') = '.' + $NewFile->find('OrigExtension');
  96. local('shortFileName') = $NewFileName->removetrailing(#fileExtension)&;
  97. /*.........................................................
  98. Make sure the file extension is allowed.
  99. */
  100. if($config->find('DeniedExtensions')->find($Type) >> $NewFile->find('OrigExtension'));
  101. $errorNumber = 202;
  102. else;
  103. /*.....................................................
  104. Rename the target path until it is unique.
  105. */
  106. while(file_exists($NewFilePath));
  107. $NewFileName = #shortFileName + '(' + loop_count + ')' + #fileExtension;
  108. $NewFilePath = $currentFolderURL + $NewFileName;
  109. /while;
  110. /*.....................................................
  111. Copy the uploaded file to its final location.
  112. */
  113. file_copy($NewFile->find('path'), $NewFilePath);
  114. /*.....................................................
  115. Set the error code for the response.
  116. */
  117. select(file_currenterror( -errorcode));
  118. case(0);
  119. $OrigFilePath != $NewFilePath ? $errorNumber = 201;
  120. case;
  121. $errorNumber = 202;
  122. /select;
  123. /if;
  124. /if;
  125. /inline;
  126. else;
  127. $errorNumber = 1;
  128. $customMsg = 'This file uploader is disabled. Please check the "editor/filemanager/upload/lasso/config.lasso" file.';
  129. /if;
  130. fck_sendresults(
  131. -errorNumber=$errorNumber,
  132. -fileUrl=$NewFilePath,
  133. -fileName=$NewFileName,
  134. -customMsg=$customMsg
  135. );
  136. ]