http - 从 VBA (WinHTTP) 通过 HTTP 上传文件

标签 http vba post upload winhttp

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

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

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

所以我的问题是:

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

谢谢,奇科多罗

最佳答案

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

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

您可以引用以下文章,了解如何使用 C# HttpWebRequest 执行此操作的示例。 WinHTTP api 当然有点不同,但文章的重点是 POST 正文的结构。

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

HTH

关于http - 从 VBA (WinHTTP) 通过 HTTP 上传文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2742839/

相关文章:

javascript - Javascript 中带有 Cookie 的 HTTP GET 请求?

mysql - Excel VBA : writing to mysql database

python - POST 请求文件 python-requests

http - 如何在 http.ListenAndServe 中使用下一个可用端口

ruby-on-rails - Rails 重定向呈现 HTML,但浏览器不显示它

c++ - HTTP 400 错误请求

javascript - 表单中数据类型可变

excel - 执行代码时 VBA 运行时错误 91

excel - ActiveX 控件是否被禁用?

php - 如何为已有五年历史的简单但可靠的 PHP 表单注入(inject)新的活力?