Oetzi,

Mod wsgi is really weird. Last mod_wsgi deployment for me was the
final one, and I never used mod_wsgi again after that. I had weird
issues with it as well, and the documentation wasn't particularly
clear about the issues. Anyway, I suggest you run with fastcgi or even
better, using a dedicated WSGI server like cherrypy or bjoern with a
static file server like lighttpd or nginx as a frontend which reverse
proxies to your WSGI server. That type of setup is usually much ligher
and performs very well.

On Tue, Feb 8, 2011 at 2:46 AM, Oetzi <[email protected]> wrote:
> Hey all,
>
> I was wondering if someone would be able to help me with a problem
> that is driving me mad.
> Here is my script:
>
> #!/usr/local/bin/python2.6
> import cgitb; cgitb.enable()
> import sys
> import web, os, random, time, sqlite3
>
> def cgidebugerror():
>
>        _wrappedstdout = sys.stdout
>
>        sys.stdout = web._oldstdout
>        cgitb.handler()
>
>        sys.stdout = _wrappedstdout
>
> web.internalerror = cgidebugerror
>
> urls = ('/', 'upload',
>                '/progress+', 'progress',
>                '/file+', 'fileServe',
>                '/admin', 'admin')
>
> #db = web.database(dbn='sqlite', db='filedb')
> render = web.template.render('/home/oetzi/webapps/mod/htdocs/
> templates/')
>
>
> sessions = {}
> prog = 0
> up = 0
>
> class session:
>
>        def __init__(self):
>
>                self.progress = 0
>                self.title = ""
>                self.finished = False
>
>        def advance(self):
>
>                self.progress = self.progress + 1
>
> class fileServe:
>
>        def GET(self):
>
>                arg = web.input(arg=None)
>                keys = {}
>                keys['key'] = arg.key
>                path = db.select('files', keys, what='path', where='key=$key')
>
>                #if not path:
>
>                #       return "This file doesn't seem to exist..."
>
>                try:
>
>                        download = open(path[0].path, 'r')
>
>                except IndexError:
>
>                        return "This file doesn't seem to exist..."
>
>                web.header('Content-type', 'application/file')
>                return download.read()
>
> class upload:
>
>        paths = {}
>
>        def GET(self):
>
>                global sessions
>
>        #render html file
>                code = 0
>
>                while sessions.has_key(str(code)):
>
>                        code = random.randint(0, 10000000000000)
>
>                newSesh = session()
>                sessions[str(code)] = newSesh
>
>                return render.index(code)
>
>        def POST(self):
>
>                global sessions
>                global up
>
>                #upload file from form
>                submit = web.input(myfile={})
>
>                code = submit.code
>                fileU = submit.myfile
>
>                up = sessions[code]
>
>                filepath = fileU.filename.replace('\\','/')
>                name = filepath.split('/')[-1]
>                path = '/home/oetzi/webapps/mod/htdocs/files/' + name
>                upload.paths[code] = "/file?key=" + name
>
>                out = open(path, 'wb', 1000)
>
>                while (True):
>
>                        packet = fileU.file.read(1000)
>                        sessions[code].advance()
>
>                        if not packet:
>
>                                break
>
>                        else:
>
>                                out.write(packet)
>
>                out.close()
>
>                #block until client has been updated
>                while not sessions[code].finished:
>
>                        sessions[code].progress = -1
>
>                #commit to db
>                title = sessions[code].title
>                #db.insert('files', title=title, key=name, path=path)
>
>                #clean up
>                sessions.pop(code)
>                path = "http://oetzi.webfactional.com"; + upload.paths.pop(code)
>
>
>                return title + ": " + path
>
> class progress:
>
>        def GET(self):
>
>                global sessions
>                global prog
>
>                #take in current title and status for user with code and return
> progress
>                arg = web.input(arg=None)
>                code = arg.code
>                prog = sessions[code]
>
>                if int(arg.status) > 0:
>
>                        sessions[code].title = arg.title
>                        path = str(upload.paths[code])
>                        sessions[code].finished = True
>                        return path
>
>                return sessions[code].progress
>
>        def POST(self):
>
>                pass
>
> class admin:
>
>        def GET(self):
>
>                global prog
>                global up
>
>                return prog == up
>
> app = web.application(urls, globals(), autoreload=False)
> application = app.wsgifunc()
>
> I basically upload a file using a post request from a form and then
> update the progress based on the amount of bytes upload. For some
> reason when I run this on my mod_wsgi server the progress fails to
> increase on an upload. It seems as if the GET request I use to get the
> progress and the POST request that increments the progress are using
> different objects. Does anybody have any idea what is happening?
>
> --
> You received this message because you are subscribed to the Google Groups 
> "web.py" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/webpy?hl=en.
>
>



-- 
Branko Vukelic

[email protected]
http://www.brankovukelic.com/

-- 
You received this message because you are subscribed to the Google Groups 
"web.py" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/webpy?hl=en.

Reply via email to