I've never had any trouble with mod_wsgi. The problem may be in your sessions code. Why don't you use webpy session class?
On Feb 8, 4: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.
