Я хочу автоматизировать с помощью Visual Basic Script загрузку файлов, которые у меня есть в форме HTML.File updload в форме сообщения в VBS
Я пытаюсь сделать сообщение в форме html, где я должен загрузить файл. Мне удалось сделать вызов HTTP с этим кодом:
sFile = sFolder & "file.txt"
sBoundary = "-ooo-"
Set req = CreateObject("MSXML2.XMLHTTP")
req.open "POST", SIGNurl, False
req.setRequestHeader "Content-Type", "multipart/form-data; boundary=" + sBoundary
inByteArray = readBytes(sFile)
base64Encoded = encodeBase64(inByteArray)
request = request & sBoundary & vbCrLf
request = request & "Content-Disposition: form-data; name=file; filename=" & sFile & vbCrLf
request = request & "Content-Type: application/x-object" & vbCrLf
request = request & base64Encoded & vbCrLf
request = request & sBoundary & vbCrLf
req.setRequestHeader "Content-Length", Len(request)
req.send request
WScript.Echo req.responseText
Set req = Nothing
Private function readBytes(file)
dim inStream
' ADODB stream object used
set inStream = WScript.CreateObject("ADODB.Stream")
' open with no arguments makes the stream an empty container
inStream.Open
inStream.type= 1
inStream.LoadFromFile(file)
readBytes = inStream.Read()
end function
Private function encodeBase64(bytes)
dim DM, EL
Set DM = CreateObject("Microsoft.XMLDOM")
' Create temporary node with Base64 data type
Set EL = DM.createElement("tmp")
EL.DataType = "bin.base64"
' Set bytes, get encoded String
EL.NodeTypedValue = bytes
encodeBase64 = EL.Text
end function
Я получаю ошибку 400 сервера, говоря «недостающее содержимое файла в загрузке». Я не уверен, что мне не хватает, но что-то должно быть не так.
Любая помощь?