This is my controller's code, that handles requests on following URL:

/app/invoices/download/<id>
for instance:


/app/invoices/download/10
to download bundle of invoices, which ID is equal to 10


def download():
    url_parts = request.url.split('/')
    bundle_id = url_parts[-1]
    try:
        bundle_id = int(bundle_id)
    except ValueError:
        raise HTTP(404)
    dir_with_id = os.path.join(BUNDLES_DIR, str(bundle_id))

    dir_content = [f for f in os.listdir(dir_with_id)
                   if f.endswith('.zip')
                   and os.path.isfile(os.path.join(dir_with_id, f))]
    if len(dir_content) != 1:
        raise HTTP(404)
    bundle_file = dir_content[0]
    bundle_file_path = os.path.join(dir_with_id, bundle_file)
    print bundle_file

    return response.stream(bundle_file_path, chunk_size=10**6, filename=
bundle_file,)


print bundle_file 
prints filename with file extension, for instance:

bundle_xyz.zip
, but I end up downloading a file called:

<id>.zip
, where <id> comes from the URL. This <id> is also the name of the 
directory that *bundle_xyz.zip* file is located in, for instance:

/bundles/10/bundle_xyz.zip

, after requesting /app/invoices/download/10 I end up downloading *10.zip* 
instead of *bundle_xyz.zip*.

My question is how to prevent web2py's response.stream method from changing 
the filename?





-- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to