我正在编写一个bash脚本来从远程网站下载文件。但是,远程网站需要先提交POST表单然后返回一个文件。我设法找到该解决方案,它的工作原理great.Here是:Bash脚本 - 在POST后获取带有Curl的文件名
curl -F 'data=filename.rar' --user-agent 'Mozilla/4.0 POST' http://somewebsite.com/index.html -v > filename
现在的问题是,我必须将stdout时,服务器返回的文件,或者我会在screen.What我得到乱码代码想要的是,而不是硬编码的'文件名',以获得文件的真实名称并在那里重定向STDOUT。 使用-sI选项运行curl来获取标题然后解析文件名不是解决方法,因为curl不接受-I和-F选项的组合。它必须是其中之一,但只能使用-FI可以看到标题和服务器也发送文件与them.Is有一种方法来获取只有标题(请记住,我也要发送发布数据以获取文件),所以我可以解析它们并提取文件名?然后,我会做出新的curl请求,但现在将该文件名称作为STDOUT值。或者有办法让curl自动从头文件下载到文件名中?
刚试过Wget.Und,wget下载文件,但它保留名称'index.php'。不知道如何使它保持原始文件名。 – Zed 2012-08-08 22:28:08
这里有一些info.With - 服务器响应我可以得到标题,这里是从输出“内容处置:附件;文件名=”filenameblablabla.ZIP“现在如果我可以让Wget使用该名称而不是index.php ... – Zed 2012-08-08 22:42:12
如果没有提供正确方向的想法,我的编辑可能会有所帮助 – Lipongo 2012-08-09 16:18:04