我正在使用CURL下载文件。文件URL是动态的。由于我想保存具有相同名称的文件,我使用curl -O下载到文件夹
文件已下载,但文件随扩展名一起保存 即“csv”
我正在尝试下载CSV文件。
我在标题
中看到了这一点 HTTP/1.1 200 OK
X-Powered-By: Servlet/3.0
Last-Modified: Wed, 23 May 2012 07:23:15 GMT
Cache-Control: public, proxy-revalidate, s-maxage=3
Content-Type: text/csv;charset=UTF-16LE
Content-Disposition: attachment; filename*=utf-8''all_open.csv
Content-Language: en-US
Transfer-Encoding: chunked
Date: Mon, 10 Mar 2014 13:10:41 GMT
不幸的是,downaloded文件的名称为csv
,而不是all_open.csv
知道我可能做错了吗?
我使用的curl命令是
C:/curl-7.35.0/bin/curl -D - -k -b 'C:/workdir/cookies/auth_cookie.txt' -H 'Content-Type: application/csv' -H 'Accept: text/csv' -O -J -X GET 'https://server/_9jHFQDtoEeGi16hvdCIrXQ?_mediaType=text/csv'
答案 0 :(得分:1)
无论curl
问题的原因是什么,您都可以单独从标题中提取文件名。为此,请将这样的内容放在批处理文件中(例如download.cmd
):
set CURL=C:\curl-7.35.0\bin\curl
set URL=https://server/_9jHFQDtoEeGi16hvdCIrXQ?_mediaType=text/csv
set OPTIONS=-k -b "C:\workdir\cookies\auth_cookie.txt" -H "Content-Type: application/csv" -H "Accept: text/csv"
%CURL% %OPTIONS% -X GET "%URL%" --head | findstr filename > filename.tmp
for /f "delims==, tokens=2" %%i in (filename.tmp) do %CURL% %OPTIONS% -X GET "%URL%" -o %%i
del /q filename.tmp