# Force wget to use actual filename

When using wget in a script to download some files from Google Docs, the name of the file is not preserved. For example:

wget 'http://spreadsheets.google.com/pub?key=pyj6tScZqmEfbZyl0qjbiRQ&output=xls'


saves the file as pub?key=pyj6tScZqmEfbZyl0qjbiRQ instead of indicatorhivestimatedprevalence15-49.xls, which is what I get if I click on the link in a browser. Is there any way to enforce this "browser-like" behaviour in wget?

-

wget --content-disposition 'http://spreadsheets.google.com/pub?key=pyj6tScZqmEfbZyl0qjbiRQ&output=xls'


will do the trick for you.

Its still not fully implemented and seems to bug out a bit sometimes so its not the default option in wget, use it at your own risk.

-
Excellent, this works! –  Chinmay Kanchi Nov 10 '11 at 0:25
I know...! Nice eh? ;) –  Bruno Pereira Nov 10 '11 at 0:27
I'm not really much of a web programmer, so I would have never thought of looking for the phrase "content disposition". You saved me having to manually look at the HTTP headers, discover the content-disposition header and deal with it. –  Chinmay Kanchi Nov 10 '11 at 1:03
WOW + amazing. THX u roc good idea. –  Kangarooo Nov 10 '11 at 3:50
Hooray! Thanks Bruno. –  Steve Bennett Feb 18 '14 at 3:20

The Google Docs link is really telling a script on the server to run, parsing that into the file you want. The file, to the best of my knowledge, does not exist ever on the server in the els form, but is generated at runtime when you ask for it. Thus, there isn't anything for wget to get.

Yes, the server is asking a script to run, which creates the .xls file on the fly. However, a full-blown browser has no problem with this. So it's obviously possible to do without the Docs API. –  Chinmay Kanchi Nov 10 '11 at 0:16