有人让我写一个脚本,下载一个csv文件并将其保存到本地磁盘。 csv位于具有集成Web服务器的PLC控制器上。您可以通过IP与PLC进行通信并手动获取文件。但是客户想要自动下载它。
我写了以下函数:
Function DownloadFile(strURL)
Dim oStream
Dim strSaveTo
strSaveTo = strLocalPath & "\" & strFilename
'HTTP Request abschicken
oHTTP.Open "GET",strURL
oHTTP.Send()
If oHTTP.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
With oStream
.Type = 1 'adTypeBinary
.Open
.Write oHTTP.ResponseBody
.SaveToFile strSaveTo
.Close
End With
set oStream = Nothing
End If
End Function
它适用于我的测试站点,但不适用于PLC。 我知道原因:
在我的testsite上,路径是这样的:ip / folder / file.csv 但是在PLC上你通过HTML调用文件参数化:ip / htmlPage.html?file = c.csv
现在请求的答案不是csv文件,而是html页面......
如何使用参数化路径获取csv文件?
(抱歉我的英语不好)
答案 0 :(得分:0)
为什么不使用My.Computer.Network.DownloadFile()
?
示例:
Function DownloadFile(strURL)
Dim strSaveTo
strSaveTo = strLocalPath & "\" & strFilename
My.Computer.Network.DownloadFile(strURL, strSaveTo)
End Function
您可以使用常规网址方式为获取请求添加参数:http://somerequest.com/?parameter=cool
可以找到DownloadFile()
方法的更多信息here