Php接收Vba post例子,VBA http post 上传 multipart/form-data 附件

本文介绍了如何使用VBA通过XMLHttp对象以multipart/form-data格式上传附件到PHP服务器,详细讨论了Unicode转换、换行符、边界字符串等问题,并提供了关键代码示例。
摘要由CSDN通过智能技术生成

时 间:2012-12-15 07:10:00

作 者:摘 要:寻遍世界各个网站,各个关键字都没有的情况下,自己终于测试出来了!也回复了google上2006年以来发表都还没有解决的问题!

正 文:

上传附件,原来逻辑也很简单,但是因为中文的问题,unicode 的问题,让上传变得复杂了!

方法一:我们可以用 WebBrower 控件来处理网页的提交动作的。我们可以通过 WebBrowser.Document.form(n).submit() 来提交网页表单的内容。不过这个方法的缺点是:

1. 这个控件是IE提供的原因,就有着浏览器是IE对的限制,譬如 user-agent 就一定是 ie ,

2. 交互的服务器也只能是 html 的,不能是wap 服务器(ie 不支持 WML 标识);而且

3. WebBrowser 控件的内存耗用也比较大,对于同时多开的操作,就会让程序变慢,内存耗用激增!

所以,我针对的研究是用 XMLHttp 直接与服务器交互的 方法二。

这个方法的好处是,原理通用于任何标准的 网页服务器,不论 IIS, Apache, tomcat,或不论服务器的开发语言是 jsp , php , asp, asp.net。 我们开发的客户端也可以是 js, Access/VBA, Excel/VBA, php ... 都能正确使用!

对于上传 multipart/form-data 格式的附件,找了很久找到很多段的代码,标准就是要输出这样的结果:

--boundary

Content-Disposition: form-data; name="varname";

--boundary

Content-Disposition: form-data; name="uploadName"; filename="上传文件名称"

Content-Type:

--boundary--

看了下这个标准,会编程的人都会生成文本数据的了,不消一会就写好了,

Set http = New MSXML2.ServerXMLHTTP

http.Open "POST", URL, False

postData = ......

http.setRequestHeader "Content-Type", "multipart/form-data; boundary=" & boundary

http.setRequestHeader "Content-Length", len( postData)

http.Send

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值