有人让我写一个脚本,下载一个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。我知道原因:
在我的测试站点上,路径如下:ip/folder/file.csv但在PLC上,您调用通过HTML:ip/htmlPage.HTML参数化的文件?file=c.csv
现在请求的答案不是csv文件,而是html页面。。。
如何使用参数化路径获取csv文件?
(抱歉我英语不好)
为什么不使用My.Computer.Network.DownloadFile()
示例:
Function DownloadFile(strURL)
Dim strSaveTo
strSaveTo = strLocalPath & "" & strFilename
My.Computer.Network.DownloadFile(strURL, strSaveTo)
End Function
您可以通过正常的URL方式为get请求添加参数:http://somerequest.com/?parameter=cool
有关DownloadFile()
方法的更多信息,请访问