gpt4 book ai didi

excel - 使用 VBA 从 Web 服务器下载日志文件

转载 作者:行者123 更新时间:2023-12-04 22:06:35 24 4
gpt4 key购买 nike

设置

服务器生成位于 https://myserver.com/logs/ 的日志文件. /logs目录受 .htaccess 密码保护文件。正在尝试访问 https://myserver.com/logs/将提示用户输入用户名和密码以查看目录列表。

我正在尝试做的事情:

我正在 MS Excel 中编写 VBA 脚本以从我的服务器下载日志文件。日志文件server.log坐在/logs目录。我想将文件下载到本地驱动器 C:\Downloads\server.log .最终,我想编写一个 for 循环来下载多个文件,但我现在只想下载一个。

我遇到的问题:

我收到 <h1>Access Denied</h1>作为返回消息。我没有看到任何下载的文件。奇怪的是……昨天它会下载文件,但只有在我访问它并通过 IE 打开它之后。然后每个后续下载工作正常。然而今天这不再起作用了。

我的文件下载功能:

Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, _
ByVal szFileName As String, _
ByVal dwReserved As Long, _
ByVal lpfnCB As Long) As Long


Function downloadLog()
Dim URL As String
Dim DestFile As String
Dim Res As Long

URL = "https://myserver.com/logs/server.log"
DestFile = "C:\Downloads\server.log"

Res = URLDownloadToFile(0&, URL, DestFile, 0&, 0&)

If Res = 0 Then
MsgBox "Success"
Else
MsgBox "Failure"
End If
End Function

请帮忙......我完全没有想法。

最佳答案

我在别处找到了答案。我在这里发布它,以便遇到相同问题的其他人可以使用下面的相同功能来完成相同的事情。

首次尝试时会提示您输入用户名和密码,但其他所有尝试都是无缝的。就像我想要的那样工作。

Function FetchFile(sURL As String, sPath)
Dim oXHTTP As Object
Dim oStream As Object


Set oXHTTP = CreateObject("MSXML2.XMLHTTP")
Set oStream = CreateObject("ADODB.Stream")
'Application.StatusBar = "Fetching " & sURL & " as " & sPath
oXHTTP.Open "GET", sURL, False
oXHTTP.send

If (oXHTTP.Status = 200) Then
With oStream
.Type = 1 'adTypeBinary
.Open
.Write oXHTTP.ResponseBody
.SaveToFile sPath, 2 'adSaveCreateOverWrite
.Close
End With
FetchFile = True
Else
FetchFile = False
End If

Set oXHTTP = Nothing
Set oStream = Nothing
'Application.StatusBar = False
End Function

关于excel - 使用 VBA 从 Web 服务器下载日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20080048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com