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 <[email protected]
> 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)
>
>
>
>
>