usually I do

def download_that():
      .......
     tempfile = StringIO()
     temparchive = zipfile.ZipFile(tempfile, 'w', zipfile.ZIP_DEFLATED)
     ....blablabla
     temparchive.writestr(filename, filecontent)
     temparchive.close() #writes 
     response.headers['Content-Disposition'] = 
'attachment;filename=blablabla.zip'
     response.headers['Content-Type'] = 'application/zip'
     rtn = tempfile.getvalue()
     tempfile.close()
     return rtn

On Friday, September 25, 2015 at 8:55:01 PM UTC+2, Phillip wrote:
>
> A zip file is written in 'download_data' and nothing happens upon 
> returning. 
>
>
> Please indicate what is missing in the following ajax call and / or 
> controller function to spawn the zip file download.
>
>
> jQuery.ajax({method:'get',url:'{{=URL('download_data')}}',
>
>                 data:fileIDs,
>
>                 success: function(){}
>
>
>                 });
>
>
> __
>
>
> def download_data():
>
>     vars = request.get_vars
>
>     fileIDs = vars.values()
>
>     import zipfile
>
>     import cStringIO
>
>     import contenttype as c
>
>     
>
>     zf = zipfile.ZipFile('data download.zip', mode='w')
>
>     try:
>
>         for file_id in fileIDs:
>
>             file = db.files[file_id].file
>
>             fileLoc = db.files.file.retrieve_file_properties(file)['path'] 
> + '/' + file
>
>             displayName = db.files[file_id].file_name
>
>             zf.write(fileLoc, displayName)
>
>     
>
>     finally:
>
>         zf.close()
>
>
>     s=cStringIO.StringIO() 
>
>      
>
>     zipfile = open('data download.zip','r')
>
>     s.write(zipfile.read())  
>
>     response.headers['Content-Type'] = c.contenttype(filename)
>
>     response.headers['Content-Disposition'] = "attachment; filename=%s" % 
> filename  
>
>     return s.getvalue()
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to