File Uploads

dimitri pater dimitri.pater at gmail.com
Sun Mar 27 16:55:46 EST 2005


Maybe this helps:
http://www.voidspace.org.uk/python/cgi.shtml#upload

I use it, it works for fine me
Maybe it will give you some clues on how to tweak your own script.

Dimitri


On Sun, 27 Mar 2005 10:32:20 -0700, Doug Helm <dhelm at wcsoftware.com> wrote:
> Hey, Folks:
> 
> I'm trying to write a very simple file upload CGI.  I'm on a Windows server.
> I *am* using the -u switch to start Python for CGIs, as follows:
> 
> c:\python\python.exe -u %s %s
> 
> I *do* have write permissions on the directory I'm trying to write to.  But,
> when I click submit, it just hangs.  Any help would be greatly appreciated.
> Thanks.  Here's the code...
> 
> Upload.py
> 
> import cgi
> 
> print "content-type: text/html\n\n"
> 
> form = cgi.FieldStorage()
> if not form:
>   print """
> <html>
> <head></head>
> <body>
> <form name="frmMain" action="Upload.py" method="POST"
> enctype="multipart/form-data">
> <input type="file" name="filename"><br>
> <input type="submit">
> </form>
> </body>
> </html>
> """
> else:
>   import BLOB
>   lobjUp = BLOB.BLOB()
>   if lobjUp.Save('filename', 'SomeFile.jpg'):
>     print """
> <html>
> <head></head>
> <body>
>   File successfully saved.
> </body>
> </html>
> """
>   else:
>     print """
> <html>
> <head></head>
> <body>
>   Unable to save file.
> </body>
> </html>
> """
> 
> --------------
> 
> Blob.py
> 
> import cgi
> import staticobject
> 
> cTrue = 1
> cFalse = 0
> 
> try:
>   import msvcrt,os
>   msvcrt.setmode( 0, os.O_BINARY ) # stdin  = 0
>   msvcrt.setmode( 1, os.O_BINARY ) # stdout = 1
> except ImportError:
>   pass
> 
> class BLOB(staticobject.StaticObject):
> 
>   def __init__(self):
>     self.initializing = cTrue
>     staticobject.StaticObject.__init__(self)
>     self.initializing = cFalse
> 
>   def Save(self, pstrFormFieldName, pstrFilePathAndName):
> 
> # tried this first -- same result -- just hangs...
> #    try:
> #      form = cgi.FieldStorage()
> #      item = form[pstrFormFieldName]
> #      if item.file:
> #        data = item.file.read()
> #        f = open(pstrFilePathAndName,'wb')
> #        f.write(data)
> #        f.close()
> #        return cTrue
> #      else:
> #        return cFalse
> #    except:
> #      return cFalse
> 
>     form = cgi.FieldStorage()
>     f = open(pstrFilePathAndName,'wb')
>     f.write(form[pstrFormFieldName].value)
>     f.close()
> 
> --
> http://mail.python.org/mailman/listinfo/python-list
> 


-- 
Please visit dimitri's website: www.serpia.com



More information about the Python-list mailing list