После отправки файла, в названии файла (если есть латинские буквы) превращает в каракули. Что делать? Где указать кодировку "utf8" еще???
массивФайлов = Новый Массив;
Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");
имяФайлаСПараметрами = ПолучитьИмяВременногоФайла("txt");
ЗаписьТекста = Новый ЗаписьТекста(имяФайлаСПараметрами, КодировкаТекста.UTF8);
ЗаписьТекста.ЗаписатьСтроку("--"+boundary);
ЗаписьТекста.ЗаписатьСтроку("Content-Disposition: form-data; name=""file""; fileName="""+НазаваниеФайла+"""");
ЗаписьТекста.ЗаписатьСтроку("Content-Type: application/pdf; charset=utf-8");
ЗаписьТекста.ЗаписатьСтроку("");
ЗаписьТекста.Закрыть();
имяФайлаОтправки = ПолучитьИмяВременногоФайла("txt");
ОбъединитьФайлы(массивФайлов, имяФайлаОтправки);
ФайлОтправки = Новый Файл(имяФайлаОтправки);
РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type", "multipart/form-data; boundary="+boundary);
Заголовки.Вставить("Content-Lenght", РазмерФайлаОтправки);
Соединение = Новый HTTPСоединение(Хост,,,,,, Сертификат);
ВебЗапрос = Новый HTTPЗапрос(Адрес,Заголовки);
ВебЗапрос.УстановитьИмяФайлаТела(ФайлОтправки.ПолноеИмя);
Ответ = Соединение.ОтправитьДляОбработки(ВебЗапрос);
массивФайлов = Новый Массив;
Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");
имяФайлаСПараметрами = ПолучитьИмяВременногоФайла("txt");
ЗаписьТекста = Новый ЗаписьТекста(имяФайлаСПараметрами, КодировкаТекста.UTF8);
ЗаписьТекста.ЗаписатьСтроку("--"+boundary);
ЗаписьТекста.ЗаписатьСтроку("Content-Disposition: form-data; name=""file""; fileName="""+НазаваниеФайла+"""");
ЗаписьТекста.ЗаписатьСтроку("Content-Type: application/pdf; charset=utf-8");
ЗаписьТекста.ЗаписатьСтроку("");
ЗаписьТекста.Закрыть();
имяФайлаОтправки = ПолучитьИмяВременногоФайла("txt");
ОбъединитьФайлы(массивФайлов, имяФайлаОтправки);
ФайлОтправки = Новый Файл(имяФайлаОтправки);
РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type", "multipart/form-data; boundary="+boundary);
Заголовки.Вставить("Content-Lenght", РазмерФайлаОтправки);
Соединение = Новый HTTPСоединение(Хост,,,,,, Сертификат);
ВебЗапрос = Новый HTTPЗапрос(Адрес,Заголовки);
ВебЗапрос.УстановитьИмяФайлаТела(ФайлОтправки.ПолноеИмя);
Ответ = Соединение.ОтправитьДляОбработки(ВебЗапрос);
По теме из базы знаний
- Передача файлов и данных на веб-сервер средствами 1С:Предприятие 8.X методом POST
- Отправка произвольного файла POST запросом с параметрами на сервер
- Отправка HTTP запроса в УТМ ЕГАИС. Код функции + обработка.
- Отправка файлов через SOAP. SOAP with attachments, MTOM
- Собираем образ виртуальной машины с PostgreSQL и платформой 1С. Цикл "Многопоточный CI для 1С c Packer, Vagrant и Jenkins", часть 2
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Попробуйте с кодировками поиграться. У меня как-то была обратная задача: из кракозябров UTF получить win.
Функция ПерекодироватьТекст(КодируемыйТекст, НачальнаяКодировка = "utf-8", КонечнаяКодировка = "windows-1251")
ВремФайл=ПолучитьИмяВременногоФайла("txt");
ТекстДляПерекодирования=Новый ТекстовыйДокумент;
ТекстДляПерекодирования.УстановитьТипФайла(НачальнаяКодировка);
ТекстДляПерекодирования.УстановитьТекст(КодируемыйТекст);
ТекстДляПерекодирования.Записать(времФайл, НачальнаяКодировка);
ТекстДляПерекодирования=Новый ТекстовыйДокумент;
ТекстДляПерекодирования.Прочитать(ВремФайл, КонечнаяКодировка);
НовыйТекст=ТекстДляПерекодирования.ПолучитьТекст();
УдалитьФайлы(ВремФайл);
Возврат НовыйТекст;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот