&НаСервере
Процедура
ЗагрузкаPdfФайлаНаСервере()
Авт = Авторизация("123",
"456");//Функция авторизации на сайте
qquuid =
Новый УникальныйИдентификатор;
qqfilename
= "C:\ТЕМП\Тестовый файл.pdf";
qqfile =
Новый ДвоичныеДанные(qqfilename);
Загр = ЗагрузкаФайлаЛайт(Авт.Соединение,
Авт.Cookie, qquuid, qqfilename, qqfile);
КонецПроцедуры
&НаКлиенте
Процедура
ЗагрузкаPdfФайла(Команда)
ЗагрузкаPdfФайлаНаСервере();
КонецПроцедуры
&НаСервере
Функция ЗагрузкаФайлаЛайт(Знач Соединение, Знач Cookie, Знач qquuid, Знач qqfilename, Знач qqfile)
Разделитель = СтрЗаменить(Новый
УникальныйИдентификатор(), "-",
"");
//Тело запроса запроса
Тело = Новый ПотокВПамяти();
ЗаписьДанных
= Новый ЗаписьДанных(Тело);
ЗаписьДанных.ЗаписатьСтроку("--"
+ Разделитель);
ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data;
name=qquuid");
ЗаписьДанных.ЗаписатьСтроку("");
ЗаписьДанных.ЗаписатьСтроку(Строка(qquuid));
//Параметр "qqfilename"
ЗаписьДанных.ЗаписатьСтроку("--"
+ Разделитель);
ЗаписьДанных.ЗаписатьСтроку("Content-Disposition:
form-data; name=qqfilename");
ЗаписьДанных.ЗаписатьСтроку("");
ЗаписьДанных.ЗаписатьСтроку(ПолучитьКороткоеИмяФайла(qqfilename));
//Параметр "qqfile"
ЗаписьДанных.ЗаписатьСтроку("--"
+ Разделитель);
ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data;
name=qqfile; filename="""
+ ПолучитьКороткоеИмяФайла(qqfilename)
+ """");
ЗаписьДанных.ЗаписатьСтроку("Content-Type: application/pdf");
ЗаписьДанных.ЗаписатьСтроку("");
ЗаписьДанных.ЗаписатьСтроку(Base64Строка(qqfile));
ЗаписьДанных.ЗаписатьСтроку("--"
+ Разделитель + "--");
ЗаписьДанных.Закрыть();
ТелоЗапроса
= Тело.ЗакрытьИПолучитьДвоичныеДанные();
Заголовки = Новый Соответствие;
Заголовки.Вставить("Cookie", Cookie);
Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" +
Разделитель);
Запрос2 = Новый HTTPЗапрос("/api/file", Заголовки);
Запрос2.УстановитьТелоИзДвоичныхДанных(ТелоЗапроса);
Ответ = Соединение.ВызватьHTTPМетод("POST",
Запрос2);
Если Ответ.КодСостояния
= 200 Тогда
ЧтениеJSON
= Новый ЧтениеJSON();
ЧтениеJSON.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8));
Ответ22 = ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
Для Каждого Эл Из
Ответ22 Цикл
Сообщить(Эл.Ключ + " " + ?(Эл.Значение
<> Неопределено, Эл.Значение,
"Неопределено"));
КонецЦикла;
Возврат qquuid;
Иначе
Сообщить(Ответ.КодСостояния);
Возврат "";
КонецЕсли;
КонецФункции
|