This is code for manual upload (it's work for me): def upload(): import os import shutil uploadfolder=os.path.join(request.folder, 'uploads') form = FORM( "Upload file:", INPUT(_type='file',_name='my_file', requires=IS_NOT_EMPTY()), 'Your name:', INPUT(_name='new_name', requires=IS_NOT_EMPTY()), INPUT(_type='submit')) if form.process(dbio=True).accepted: m_ofn = form.vars.my_file.filename m_nf = uploadfolder + '/' + m_ofn + '_' + form.vars.new_name my_object = form.vars.my_file.file m_f = open(m_nf, "wb") #m_f.write(my_object.read()) //this ca be used shutil.copyfileobj(my_object,m_f) //but I us this m_f.close() return dict(form=form)
Thanks to Anthony and Massimo - - Miroslav Gojic - - On Sun, Nov 20, 2011 at 17:50, Massimo Di Pierro <massimo.dipie...@gmail.com > wrote: > > what is difference between: > > if form.process().accepted: > > and > > if form.accepts(request,session): > > no difference functionally, just different APIs. > > > If I have two variables (var1 and var2) > > var1 = Object > > var2 = cStringIO.StrindO 0x1234 > > > > Before your example I was stack with > > file.write(var1) > > or > > file.write(var2) > > how I can get string value from var1=Object or var2=cStringIO.StrindO > > file.write(var2.read()) > > or more memory efficiently > > import shutil > shutil.copyfileobj(var2,file) > > > > >