使用VBA进行基本上传

时间:2017-04-12 21:36:36

标签: vba file-upload winhttprequest

我试图了解使用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

我是一个非常大的使用网络和winhttp的菜鸟。使用此代码我得到了成功的200响应......我想。但我不知道文件现在在哪里上传。所以这是我的问题:

1。)在上传文件时,我在哪里以及如何设置文件?

2.。)requestHeader中的“boundary =”究竟是什么?我通过观察网络流量手动设置了这个,但我不知道这意味着什么。

3。)requestHeader的长度是多少?我可以使用len(filedata)

非常感谢任何帮助,谢谢。

1 个答案:

答案 0 :(得分:-1)

我们有完整的上传API,但为了使用它,您需要一个有效的商业帐户。

有bash&这里有python脚本:

https://github.com/osteth/ufiles-bash https://github.com/osteth/ufile-python

请注意这些内容处于测试阶段,可能随时更改。

最佳, 莱恩