Загрузить файл через HTTP из VBA (WinHTTP) - PullRequest
2 голосов
/ 30 апреля 2010

Я пытаюсь (HTTP) загрузить двоичный файл программно из VBA.Я намереваюсь разместить на сервере страницу ASPX, чтобы принять файл и некоторые дополнительные параметры.

Я знаю, что есть много хороших способов сделать это (например, использовать веб-сервис вместо aspx), но мое ограничениечто он должен работать в VBA (в файле Excel), и что я не могу установить какие-либо дополнительные компоненты на клиенте.

Так что я предполагаю, что буду использовать WinHTTP, и я нашел несколько примеров для публикацииданные, но не размещать двоичный файл.Возможно, мне нужно base64 содержимого файла?

Итак, мои вопросы:

  • Нужно ли выполнять кодировку вручную или я могу заставить WinHTTP это делать?* Есть ли лучшая утилита для использования, чем WinHTTP?(Помните, я не хочу устанавливать какое-либо дополнительное программное обеспечение, оно должно поставляться с WinXP Pro, Office 2007 или .NET Framework, например)
  • Есть ли лучший способ пойти, например, с использованием ASP.NETвеб-сервисы?

Thx, chiccodoro

1 Ответ

2 голосов
/ 30 апреля 2010

Вы можете использовать base64, но обычно написание двоичного кода проще.

Препятствие, которое вам нужно преодолеть, - это создание правильного POST для нескольких форм / форм. Это вполне возможно при использовании WinHTTP, хотя я не делал этого годами и не собираюсь предоставлять пример кода, это не тривиально.

Вы можете сослаться на следующие статьи для примеров того, как сделать это с C # HttpWebRequest. API-интерфейс WinHTTP, конечно, немного отличается, но основные моменты, которые следует извлечь из статей, - это структура тела POST.

Обычно я предоставляю пример кода, но, как я уже сказал, у меня сейчас нет инструментов для каменного века; -).

НТН

...