通过HTTP从VBA上载文件(WinHTTP)

通过HTTP从VBA上载文件(WinHTTP),http,vba,post,upload,winhttp,Http,Vba,Post,Upload,Winhttp,我正在尝试从VBA中以编程方式(HTTP)上载二进制文件。我打算在服务器上放置一个ASPX页面,以接受该文件和某些附加参数 我知道有很多很好的方法可以做到这一点(例如,使用web服务而不是aspx),但我的限制是它必须在VBA(excel文件)中运行,并且我不能在客户端上安装任何其他组件 所以我想我将使用WinHTTP,我发现了几个示例来发布表单数据,但不发布二进制文件。我可能需要检查一下文件内容 因此,我的问题是: 我需要手动进行编码还是让WinHTTP进行编码 有没有比WinHTTP更好的

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

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

所以我想我将使用WinHTTP,我发现了几个示例来发布表单数据,但不发布二进制文件。我可能需要检查一下文件内容

因此,我的问题是:

  • 我需要手动进行编码还是让WinHTTP进行编码
  • 有没有比WinHTTP更好的实用程序?(请记住,我不想安装任何其他软件,它必须随WinXP Pro、Office 2007或.NET framework一起提供,例如。)
  • 是否有更好的方法,例如使用ASP.NET web服务
Thx,chiccodoro

您可以使用base64,但通常写二进制更容易

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

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

  • (你的真言)
  • (程序性更强一些,可能更容易输出格式)
通常我会提供示例代码,但正如我所说,我现在没有设置任何石器时代工具;-)


是的,尼安德特人的生活很艰难:-)谢谢你的链接,你在“带表单字段、cookies和标题的C#File Upload”上的帖子看起来确实很有趣。