2017-04-12 30 views
1

我想了解使用vba和winhttp的文件上傳過程。使用VBA的基本上傳

我試圖將文件上傳到: 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 

我是一個相當大的小白與網絡和WinHTTP工作。使用這段代碼,我得到了一個成功的200響應......我想。但我不知道該文件現在在哪裏上傳。所以這裏是我的問題:

1.)我在哪裏以及如何設置文件信息上傳?

2.)requestHeader中的「boundary =」究竟是什麼?我通過觀看網絡流量來手動設置,但我不知道這意味着什麼。

3.)requestHeader中的長度是多少?我可以使用len(filedata)

任何幫助將不勝感激,謝謝。

回答