2010-04-30 2 views
2

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

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

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

Так что мои вопросы:

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

Thx, chiccodoro

ответ

1

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

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

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

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

НТН

+0

Да, жизнь, как неандерталец трудно :-) Спасибо за ссылки, ваш пост на «# Файл C Загрузить с полями форм, печенье и заголовки» выглядит действительно очень интересно. – chiccodoro

Смежные вопросы