这里的问题问: 我如何发送一个HTTP POST请求使用VBA从Excel服务器? 几乎正是我一直在寻找不同的是我想许多文件发送到服务器。 我还用Google搜索,发现我如何上传使用VBA通过HTTP POST一个zip文件? 这还不错,但是非常让人泄气 - 这似乎是一个大量的工作(不只是做一个HTML表单这里...)。
选项2浏览: http://www.motobit.com/tips/detpg_post-binary-data-url/ (如上面提到的SO问题引)似乎将工作得很好,但正如我在JS工作, CSS,我不知道如何创建FORMDATA(二进制文件发送到服务器)中的示例。
谁能帮帮我吗? 从本质上讲,我想通过VBA从Excel内部发送3-6文件在HTTP_POST到PHP脚本,期待形式的数据,如Web服务器上。 HTML表单处理这种事情是这样的:
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<input name="userfile[]" type="file" /><br />
<input name="userfile[]" type="file" /><br />
<input name="userfile[]" type="file" /><br />
<input type="submit" />
</form>
谢谢大家。
编辑 - 2012年8月2日
我仍然试图在这一问题上的工作。 我不知道VBA / 6,非常简单,只是基本的JS让我有点失落。 以下是我迄今所做的:
Sub HTTPInternetPutFile()
' create new object with WinHttpRequest for this operation
Dim WinHttpReq As Object
Set WinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
Dim FormFields As String
' initialize variables that we will set and pass as parameters
Dim sfpath
Dim strURL As String
Dim StrFileName As String
StrFileName = "CLIPrDL.csv"
sfpath = "C:\CLIPr\"
strURL = "http://s0106001c10187ab1.gv.shawcable.net/uploadtest/upload_file.php"
WinHttpReq.Open "POST", strURL, False
' Set headers
WinHttpReq.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
WinHttpReq.setRequestHeader "Accept-Charset", "ISO-8859-1,utf-8"
WinHttpReq.setRequestHeader "Content-Type", "multipart/form-data"
' WinHttpReq.setRequestHeader "Content-Type", "text/html;charset=UTF8"
WinHttpReq.setRequestHeader "Content-Disposition", "form-data; name=""userfile[]"""
' I dont understand this... why use fileup??
FormFields = """filename=" & StrFileName & """"
FormFields = FormFields & "&"
FormFields = FormFields & sfpath
' so comment it out for now
' WinHttpReq.Send FormFields
WinHttpReq.Send sfpath & StrFileName
' output this var to a message box becuase I dont know what it does really
MsgBox FormFields
' Display the status code and response headers.
MsgBox WinHttpReq.GetAllResponseHeaders
MsgBox WinHttpReq.ResponseText
End Sub
在脚本底部的消息框做输出服务器的报头和响应(空白HTML页)。 我觉得有东西,我不是在头设置,使服务器幸福(注:尝试注释掉的Content-Type)。
如果有人在那里使用VBA / 6 WinHttpRequest对象通过HTTP来发布二进制文件有经验,请大家帮忙! :)