2010-04-30 605 views
2

我试图(HTTP)以编程方式从VBA中上传二进制文件。我打算在服务器上放一个ASPX页面来接受这个文件和一些额外的参数。通过HTTP从VBA上传文件(WinHTTP)

我知道有很多很好的方法来做到这一点(如使用Web服务,而不是C++),但我的限制是它必须在VBA运行(在Excel文件),而且我不能安装任何附加组件在客户端。

所以我想我会使用WinHTTP,并且发现了几个例子来发布表单数据,但不是发布一个二进制文件。我可能需要base64的文件内容?

所以我的问题是:

  • 我需要做手工编码或者我可以让WinHTTP的做到这一点?
  • 有比WinHTTP更好的实用工具吗? (请记住,我不想安装任何其他软件,它必须随WinXP Pro,Office 2007或.NET框架一起提供,例如)
  • 有没有更好的方法可以去,使用ASP.NET Web服务?

THX,chiccodoro

回答

1

可能使用的base64但通常写入二进制比较容易。

您必须跨越的障碍是构建一个有效的多票据/表单POST。这完全可以使用WinHTTP,虽然我已经多年没有这样做了,并且不想提供示例代码,但这不是微不足道的。

您可以参考以下文章,了解如何使用C#HttpWebRequest执行此操作的示例。 WinHTTP API当然有点不同,但要从文章中提取的要点是POST主体的结构。

通常我提供的示例代码,但正如我说,我目前还没有建立任何石器时代的工具;-)。

HTH

+0

呀,生活作为一个尼安德特人是很难:-)谢谢你的链接,你的岗位上“C#文件上传与表单域,cookie和头”看上去确实很有趣。 – chiccodoro 2010-04-30 08:59:00