I'm working on a game app that is setup to have users create profiles using the Auth class. I want to have users save games specific to their account, and allow them to have multiple saved games. I also want to have the saved games listed so the user can load (and maybe download) them. The files would be strings that shouldn't be more than a couple kb.
I found this awesome example app that I'm looking through, but it works with uploaded files vs auto-generated files made from strings: http://web2py.com/appliances/default/show/70 I'm trying to extract out some of the code from this appliance and write data, but every file I write is blank. I put in some debug and it is going through the try block, also the test.txt, which looks like it is debug text, is empty. I feel like there is something small, but important that I'm missing, any ideas? Here is the code I have right now: output=os.path.join(request.folder,'static','test.txt') ... @service.jsonrpc def sendFileJSON(dataFromJSON): parentpath='/Documents/' #temporary filename='testFile06.dat' #temporary file = cgi.FieldStorage('file', 'testFile06.dat', 'abc\n') #eventually use dataFromJSON instead of abc filepath=parentpath+filename filetype=os.path.splitext(filename)[1][1:] row=db((db.allfiles.parentpath==parentpath)&(db.allfiles.filepath==filepath)&(db.allfiles.filename==filename) \ &(db.allfiles.user==me)).select() if not len(row): db.allfiles.insert(filename=filename,filepath=filepath, \ parentpath=parentpath,filetype=filetype,file=db.allfiles.file.store(file.file,filename),datecreated=now,user=me) result = { 'Path' : parentpath, 'Name' : filename, 'Error' :'', 'Code':0 } else: result = { 'Path' : parentpath, 'Name' : filename, 'Error' : 'File already exists', 'Code':1 } return str(result) row=db((db.allfiles.filename==filename)&(db.allfiles.user==me)).select() [0] insertedfile=row.file outfile=open(output,'wb') try: filepath=os.path.join(request.folder,'uploads',insertedfile) filesize=os.path.getsize(filepath) if filepath[-3:]=='txt' or filepath[-4:]=='html': filepath=os.path.normpath(filepath) filein=open(filepath,'r') dbcontent=filein.read() filein.close() db((db.allfiles.filename==filename)&(db.allfiles.user==me)).update(filesize=filesize,content=dbcontent) else: db((db.allfiles.filename==filename)&(db.allfiles.user==me)).update(filesize=filesize) outfile.close() except: outfile.write(str(sys.exc_info()[1])) outfile.close() return "saved"

