2

VBA内からプログラムでバイナリファイルを(HTTP)アップロードしようとしています。サーバーにASPXページを配置して、ファイルと特定の追加パラメーターを受け入れるつもりです。

これを行うための優れた方法がたくさんあることは知っていますが(たとえば、aspxの代わりにWebサービスを使用する)、私の制約は、VBAで(Excelファイルで)実行する必要があり、クライアントに追加のコンポーネントをインストールできないことです。

したがって、WinHTTPを使用すると思います。フォームデータを投稿する例をいくつか見つけましたが、バイナリファイルを投稿することはできません。私はおそらくファイルの内容をbase64する必要がありますか?

だから私の質問は:

  • エンコードを手動で行う必要がありますか、それともWinHTTPにそれを行わせることができますか?
  • WinHTTPよりも優れたユーティリティはありますか?(追加のソフトウェアをインストールしたくないことを忘れないでください。WinXPPro、Office 2007、または.NET Frameworkに同梱されている必要があります。例)
  • ASP.NET Webサービスを使用するなど、より良い方法はありますか?

Thx、chiccodoro

4

1 に答える 1

2

base64を使用できますが、通常はバイナリの記述が簡単です

飛躍しなければならないハードルは、有効なマルチパー/フォームPOSTを構築することです。これはWinHTTPを使用して完全に可能ですが、私は何年もそれを行っておらず、サンプルコードを提供するためのツールもありませんが、簡単ではありません。

C#HttpWebRequestを使用してこれを行う方法の例については、次の記事を参照してください。もちろん、WinHTTP apiは少し異なりますが、記事から取り除くべき重要なポイントは、POST本体の構造です。

通常、私はサンプルコードを提供しますが、私が言ったように、私は現在石器時代のツールをセットアップしていません;-)。

HTH

于 2010-04-30T07:46:20.017 に答える