2010-04-30 105 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