我正在尝试使用 vba 和 winhttp 了解文件上传过程。
我正在尝试将文件上传到: https ://uploadfiles.io/
在 VBA 中使用以下代码:
Public Function GetFileBytes(ByVal path As String) As Byte()
Dim lngFileNum As Long
Dim bytRtnVal() As Byte
lngFileNum = FreeFile
If LenB(Dir(path)) Then ''// Does file exist?
Open path For Binary Access Read As lngFileNum
ReDim bytRtnVal(LOF(lngFileNum) - 1&) As Byte
Get lngFileNum, , bytRtnVal
Close lngFileNum
Else
Err.Raise 53
End If
GetFileBytes = bytRtnVal
Erase bytRtnVal
End Function
Sub testLoad()
Dim http
Dim filedata() As Byte
filedata = GetFileBytes("C:\apps\somefile.pdf")
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
URL = "https://uploadfiles.io/upload"
http.Open "POST", URL, False
http.setRequestHeader "Content-Type", "multipart/form-data; boundary=---------------------------7e1881e4703b8" 'Add boundary
http.setRequestHeader "Content-Length", 80047 'Add length
http.send filedata
MsgBox http.Status
End Sub
我是一个非常大的菜鸟,使用 web 和 winhttp。使用此代码,我得到了成功的 200 响应……我想。但是我不知道文件现在上传到哪里了。所以这是我的问题:
1.) 在上传文件时,我在哪里以及如何设置文件信息?
2.) requestHeader 中的“boundary=”到底是什么?我是通过观察网络流量手动设置的,但不知道是什么意思。
3.) requestHeader 的长度是多少?我可以使用 len(filedata)
任何帮助将不胜感激,谢谢。