sending data/overriding response headers?

2010-03-03 Thread David Susco
Hey guys, A user would like to download a table dump as a CSV, what's the best way to do this? ActionController has send_data: http://api.rubyonrails.org/classes/ActionController/Streaming.html Is there something similar built into Camping? If not, is there a way to override the response

Re: sending data/overriding response headers?

2010-03-03 Thread Magnus Holm
Sure, just make sure to enable X-Sendfile in Apache/Nginx, and then set it yourself: def get @headers['X-Sendfile'] = /full/path/to/file @headers['Content-Type'] = text/plain; charset=utf-8 end Or if you want Rack to figure out which Content-Type to send: file = /full/path/to/file

Re: sending data/overriding response headers?

2010-03-03 Thread Julik Tarkhanov
On 3 mrt 2010, at 16:43, David Susco wrote: Is there something similar built into Camping? Before it was so that you could return an IO object from your action and it would just work. Dunno if Camping 2 still supports this. A Content-Disposition header would be in order so that your

Re: sending data/overriding response headers?

2010-03-03 Thread Magnus Holm
In Camping 2 you can return an object which responds to #each and the server will then stream it to the client. If you want the file to trigger a download-box on the user, you'll have to send Content-Disposition as Julik mentioned. Something like this should work, although I'm not 100% sure: