Этот вопрос задавался много раз другими людьми в той или иной форме, но большинство оставалось без ответа, или данный ответ «Использовать C#, duh!», Который, кстати, является не ответом. ;-)Как загрузить zip-файл через HTTP-сообщение с помощью VBA?
Я хочу загрузить zip-файл на веб-сервер через VBA. Код на стороне сервера уже существует и работает хорошо; он принимает файлы zip через загрузку формы вручную и делает что-то с содержимым zip-файла.
Теория состоит в том, что я планирую преобразовать двоичное содержимое zip-файла в строку запроса HTTP и отправить его на сервер, используя некоторые методы из библиотеки WinHTTP. Если все будет хорошо, сценарий на стороне сервера (в Perl) не сможет определить, поступал ли файл из VBA или браузера и продолжал нормально работать.
Однако трансформирование zip-файла в строку запроса HTTP не кажется очень простым.
Поиск в Интернете, кажется, указывает, существует 3 общих стратегий:
Метод 1: WinHTTP и ручное кодирование двоичного кода в строке запроса HTTP
- Предполагает открытие файла в двоичном режиме и вручную применения некоторая кодировка voodoo, чтобы изменить двоичный поток в строку запроса HTTP и отправить его на своем пути с помощью WinHTTP. Страшный код.
Способ 2: WinHTTP
- Вовлекает с использованием ADODB.Stream. Менее десяти строк кода.
Метод 3: Автоматизация IE с помощью SendKeys
- Там только одно слово, чтобы описать этот хак: Тьфу! И, вероятно, сломается в будущей версии IE, если не будет. Менее десяти строк кода. Риск безопасности.
Я склоняюсь к Способ 2, однако, документация тонкие, примеры кода редко, и нет никакой уверенности в том, что она работает. Большинство примеров кода являются неполными и часто содержат комментарии, которые говорят, что они не работают. Действительно ли этот метод работает?
Способ 1 следующий в очереди.
Способ 3 Пожалуйста, нет! (Скорее используйте C#, если это так. Love C#, только требования разрешают только VBA)
У кого-нибудь есть хорошие примеры того, как выполнить эту задачу?
Возможный дубликат [Как отправить файлы через HTTP \ _POST с помощью Excel с помощью VBA?] (Http://stackoverflow.com/questions/10954293/how-to-send-files-via-http-post-with- excel-using-vba) – 8128