v8: Альтернативный способ получения файла из интернета (HTTPСоединение)Недостатком получения файла с помощью объект HTTPСоединение является:
1. Необходимость выделить из файла имя сервера и имя файла на нем.
2. На время считывания выполнение кода останавливаетя.
В связи с этим существует обходной вариант чтения файла. | | Автор статьи: Гений 1С | Редакторы: Последняя редакция №5 от 18.01.08 | История URL: http://kb.mista.ru/article.php?id=630 | |
Ключевые слова: HTTPСоединение, файл, скачивание
Вот код, иллюстрирующий идею:
Соединение = ПолучитьCOMОбъект("","Microsoft.XMLHTTP");
Соединение.open("GET", П.Адрес,0,,); //0 - синхронный (по другому 1с не умеет), 1 - асинхронный
Соединение.send();
Начало=ТекущаяДата();
Пока Соединение.readyState <> 4 И (ТаймАут=0 ИЛИ ТекущаяДата()-Начало<ТаймАут) Цикл
обксОбработкаПрерыванияПользователя();
КонецЦикла;
обСохранитьДвоичныйБуферВФайл(Соединение.responseBody, ИмяВременногоФайла);
Функция обСохранитьДвоичныйБуферВФайл(Буфер, ИмяФайла) Экспорт
Поток = Новый COMОбъект("ADODB.Stream");
Поток.Type = 1; //Бинарный
Поток.Mode = 3;
Поток.Open();
Поток.Write(Буфер);
Поток.SaveToFile(ИмяФайла);
Поток.Close();
КонецФункции
Полезные ссылки:
Описание ADODB.Stream: http://msdn2.microsoft.com/en-us/library/ms675032(VS.85).aspx Описание XMLHttpRequest Object: http://msdn2.microsoft.com/en-us/library/ms535874(VS.85).aspx
|