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

数据库编程

开发平台:

Visual C++

  1. #!/usr/bin/env python
  2. """
  3. FCKeditor - The text editor for Internet - http://www.fckeditor.net
  4. Copyright (C) 2003-2007 Frederico Caldeira Knabben
  5. == BEGIN LICENSE ==
  6. Licensed under the terms of any of the following licenses at your
  7. choice:
  8. - GNU General Public License Version 2 or later (the "GPL")
  9. http://www.gnu.org/licenses/gpl.html
  10. - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
  11. http://www.gnu.org/licenses/lgpl.html
  12. - Mozilla Public License Version 1.1 or later (the "MPL")
  13. http://www.mozilla.org/MPL/MPL-1.1.html
  14. == END LICENSE ==
  15. This is the "File Uploader" for Python
  16. """
  17. import os
  18. from fckutil import *
  19. from fckcommands import *  # default command's implementation
  20. from fckconnector import FCKeditorConnectorBase # import base connector
  21. import config as Config
  22. class FCKeditorQuickUpload( FCKeditorConnectorBase,
  23. UploadFileCommandMixin, 
  24. BaseHttpMixin, BaseHtmlMixin):
  25. def doResponse(self):
  26. "Main function. Process the request, set headers and return a string as response."
  27. # Check if this connector is disabled
  28. if not(Config.Enabled):
  29. return self.sendUploadResults(1, "This file uploader is disabled. Please check the "editor/filemanager/connectors/py/config.py"")
  30. command = 'QuickUpload'
  31. # The file type (from the QueryString, by default 'File').
  32. resourceType  = self.request.get('Type','File')
  33. currentFolder = getCurrentFolder(self.request.get("CurrentFolder",""))
  34. # Check for invalid paths
  35. if currentFolder is None:
  36. return self.sendUploadResults(102, '', '', "")
  37. # Check if it is an allowed command
  38. if ( not command in Config.ConfigAllowedCommands ):
  39. return self.sendUploadResults( 1, '', '', 'The %s command isn't allowed' % command ) 
  40. if ( not resourceType in Config.ConfigAllowedTypes  ):
  41. return self.sendUploadResults( 1, '', '', 'Invalid type specified' ) 
  42. # Setup paths
  43. self.userFilesFolder = Config.QuickUploadAbsolutePath[resourceType] 
  44. self.webUserFilesFolder =  Config.QuickUploadPath[resourceType]
  45. if not self.userFilesFolder: # no absolute path given (dangerous...)
  46. self.userFilesFolder = mapServerPath(self.environ, 
  47. self.webUserFilesFolder)
  48. # Ensure that the directory exists.
  49. if not os.path.exists(self.userFilesFolder):
  50. try:
  51. self.createServerFoldercreateServerFolder( self.userFilesFolder ) 
  52. except:
  53. return self.sendError(1, "This connector couldn't access to local user's files directories.  Please check the UserFilesAbsolutePath in "editor/filemanager/connectors/py/config.py" and try again. ")
  54. # File upload doesn't have to return XML, so intercept here
  55. return self.uploadFile(resourceType, currentFolder)
  56. # Running from command line (plain old CGI)
  57. if __name__ == '__main__':
  58. try:
  59. # Create a Connector Instance
  60. conn = FCKeditorQuickUpload()
  61. data = conn.doResponse()
  62. for header in conn.headers:
  63. if not header is None:
  64. print '%s: %s' % header
  65. print 
  66. print data
  67. except:
  68. print "Content-Type: text/plain"
  69. print
  70. import cgi
  71. cgi.print_exception()