replace

  stream=TAG(stream).flatten() # THIS IS WHERE THE PROBLEM IS

with

  import cStringIO
  stream=cStringIO.StringIO(TAG(stream).flatten())

On Sep 5, 10:29 pm, weheh <[email protected]> wrote:
> I need to upload a file to uploads, process it, and store the
> processed result in a new folder/file.
>
> # I've defined the following two models
> db.define_table('infile',
>   Field('parent',db.parent),
>   Field('name','upload',autodelete=True,uploadseparate=True))
> db.define_table('outfile',
>   Field('parent',db.parent),
>   Field('name','upload',autodelete=True,uploadseparate=True))
>
> # Here's the controller for uploading the input file
> def input():
>  ... blah ...
>   if form.accepts(request.vars,...):
>     id=create_parent(form)
>     request.vars.name.infile.seek(0) # rewind uploaded file
>     db.infile.insert(parent=id,
>
> name=db.infile.name.store(request.vars.name.file,request.vars.name.filename))
>     process(id)
>     redirect( ...)
>
> # and here's the routine for processing the input file to generate the
> output file
> def process(id):
>   """Flattens infile and writes outfile"""
>   # I want to read the input file that was uploaded and then write
>   # a flattened version of the uploaded file to a path /myapp/static/
> output/ab/xy/out_abjljsdfljljsdf.xykjsdkjhsf.txt
>   # I've start with this:
>   infile=db(db.file.parent==id).select(db.file.name).first()
>   inpath=get_full_path(infile.name)
>   stream=open(inpath,'rb')
>   stream=TAG(stream).flatten() # THIS IS WHERE THE PROBLEM IS
>   outpath=create_empty_file_under_static_slash_txtfiles(suffix='txt')
>   db.outfile.insert(parent=id,
>     name=db.outfile.name.store(stream,outpath)) # THIS DOESN'T WORK
> BECAUSE IT'S NOT A STREAM
>   return
>
> I've embedded comments above showing where I'm running into problems.
> What's the best way for me to be able to flatten the input file and
> write to the output file. NOTE: I am doing things this way because I
> also want the input and output files to be autodeleted in case the
> parent record is deleted.
>
> p.s. unless I'm doing things the right way, which I doubt, don't worry
> about syntax too much above since I just typed it into this post and
> didn't copy and paste from a running program.

Reply via email to