Handling spaces in filename with response.stream

55 views
Skip to first unread message

Jordan Ladora

unread,
Dec 18, 2014, 1:35:12 PM12/18/14
to web...@googlegroups.com
I'm using response.stream, like -

response.stream(open(file_path, 'r'), attachment=True, chunk_size=4096, filename='abc def ghi.txt')

When there is a space in the filename, I get a downloaded file with a name that is the first part split on ' ', same as calling filename.split(' ')[0].

For example, with filename='abc def ghi.txt', I am getting 'abc' as the name of the downloaded file.

How can I avoid this?

Thanks,
-j

Leonel Câmara

unread,
Dec 18, 2014, 1:52:37 PM12/18/14
to web...@googlegroups.com
I think this is a bug in Response.stream it does this:

            headers["Content-Disposition"] = \
                "attachment;filename=%s" % attname

When it should do this:

            headers["Content-Disposition"] = \
                'attachment;filename="%s"' % attname

The difference is that now it's using double quotes around the filename which is permitted for parameters.

Can you edit this line in your web2py's gluon/globals.py, restart web2py and see if it now works correctly?

Also submit an issue so we remember to fix it :)

Jordan Ladora

unread,
Dec 19, 2014, 1:21:58 PM12/19/14
to web...@googlegroups.com
Hi Leonel,

Yes. that fixed it - thanks very much for your help.

-j

--
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 a topic in the Google Groups "web2py-users" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/web2py/vJweEV8aXaQ/unsubscribe.
To unsubscribe from this group and all its topics, send an email to web2py+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply all
Reply to author
Forward
0 new messages