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

Paste is for source code and general debugging text.

Login or Register to edit, delete and keep track of your pastes and more.

Raw Paste

Login or Register to edit or fork this paste. It's free.