Код |
---|
With New WinHttpRequest
.Open "GET", DownloadURL$, False
.setRequestHeader "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"
.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
.Send: DoEvents
' сохраняем ответ сервера в файл
If .Status = 200 Then
res = True
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write .ResponseBody
oStream.SaveToFile Filename$, 2 ' 1 = no overwrite, 2 = overwrite
oStream.Close
Else
Debug.Print "error downloading file: Status = " & .Status
End If
End With
|
или так
Код |
---|
Function DownloadFile(ByVal URL$, ByVal LocalPath$) As Boolean
' Функция скачивает файл по ссылке URL$
' и сохраняет его под именем LocalPath$
Dim XMLHTTP, ADOStream, FileName
On Error Resume Next: Kill LocalPath$
Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
XMLHTTP.Open "GET", Replace(URL$, "\", "/"), "False"
XMLHTTP.send
If XMLHTTP.statustext = "OK" Then
Set ADOStream = CreateObject("ADODB.Stream")
ADOStream.Type = 1: ADOStream.Open
ADOStream.Write XMLHTTP.responseBody
ADOStream.SaveToFile LocalPath$, 2
ADOStream.Close: Set ADOStream = Nothing
DownloadFile = True
Else
'MsgBox "Не удаётся скачать файл " & XMLHTTP.statustext
End If
Set XMLHTTP = Nothing
End Function |
А имя файла можно брать из заголовка ответа сервера, - примеры кода есть на форумах