2

我正在尝试(HTTP)从 VBA 中以编程方式上传二进制文件。我打算在服务器上放一个 ASPX 页面来接受文件和某些附加参数。

我知道有很多很好的方法可以做到这一点(例如使用 Web 服务而不是 aspx),但我的限制是它必须在 VBA 中运行(在 excel 文件中),并且我不能在客户端上安装任何其他组件。

所以我想我会使用 WinHTTP,并且我找到了几个发布表单数据的示例,而不是发布二进制文件。我可能需要对文件内容进行base64?

所以我的问题是:

  • 我需要手动进行编码还是可以让 WinHTTP 这样做?
  • 有没有比 WinHTTP 更好的实用程序?(记住我不想安装任何额外的软件,它必须随 WinXP Pro、Office 2007 或 .NET 框架一起提供,例如)
  • 有没有更好的方法,例如使用 ASP.NET Web 服务?

谢谢,奇科多罗

4

1 回答 1

2

可以使用 base64,但通常编写二进制文件更容易。

您必须跨越的障碍是构建一个有效的多标准/表格 POST。使用 WinHTTP 完全可以做到这一点,尽管我已经很多年没有这样做了,也没有提供示例代码的工具,但这并不是微不足道的。

您可以参考以下文章以获取有关如何使用 C# HttpWebRequest 执行此操作的示例。WinHTTP api 当然有点不同,但要从文章中带走的重点是 POST 正文的结构。

通常我会提供示例代码,但正如我所说,我现在没有设置任何石器时代的工具 ;-)。

高温高压

于 2010-04-30T07:46:20.017 回答