Возврат (передача) бинарных данных и имени файла через веб-сервис.
Здравсвуйте, возникала необходимость передать бинарные данные:
А если передаю имя и бинарные данные строкой - то данные приходят кривые.
ЧЯДНТ?
Функция GetLoogoAction(ЗапросХТТП)
ОтветХТТП = Новый HTTPСервисОтвет(200);
ИмяФайла = "\\192.168.0.1\LOGO\LOGO.bmp";
//проверим есть ли и сколько весит
Файл = Новый Файл(ИмяФайла);
Если Файл.Существует() Тогда
//все ок, проверим размер норм 250 000
Размер = Файл.Размер();
Если Размер>1000000 Тогда
ОтветХТТП.УстановитьТелоИзСтроки("> 1000000 " + ИмяФайла + " " + Размер);
Возврат ОтветХТТП;
КонецЕсли;
КонецЕсли;
БинарныйФайл = Новый ДвоичныеДанные(ИмяФайла);
////все ок - передадим
//Попытка
// ЗаписьJSON = Новый ЗаписьJSON;
// ЗаписьJSON.УстановитьСтроку();
//
// ЗаписьJSON.ЗаписатьНачалоОбъекта();
//
// ЗаписьJSON.ЗаписатьИмяСвойства("name");
// ЗаписьJSON.ЗаписатьЗначение(СокрЛП(ФайлЛого.Имя));
//
// ЗаписьJSON.ЗаписатьИмяСвойства("bin");
// ЗаписьJSON.ЗаписатьЗначение(СокрЛП(БинарныйФайлЛого));
//
// ЗаписьJSON.ЗаписатьКонецОбъекта();
//
// СтрокаJSON = ЗаписьJSON.Закрыть();
//Исключение
// ОтветХТТП.УстановитьТелоИзСтроки(ОписаниеОшибки());
// Возврат ОтветХТТП;
//КонецПопытки;
//ОтветХТТП.УстановитьТелоИзСтроки(СтрокаJSON); //если имя и бинарник
ОтветХТТП.УстановитьТелоИзДвоичныхДанных(БинарныйФайлЛого); //только файл
Возврат ОтветХТТП;
КонецФункции
ПоказатьА если передаю имя и бинарные данные строкой - то данные приходят кривые.
ЧЯДНТ?
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
(2) там длина строки уменьшится?
- не уменьшилась, но раскодирует, создает файл из бинарника - файл открывается.
- не уменьшилась, но раскодирует, создает файл из бинарника - файл открывается.
//все ок - передадим
Попытка
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписьJSON.ЗаписатьНачалоОбъекта();
ЗаписьJSON.ЗаписатьИмяСвойства("name");
ЗаписьJSON.ЗаписатьЗначение(СокрЛП(Файл.Имя));
ЗаписьJSON.ЗаписатьИмяСвойства("bin");
//ЗаписьJSON.ЗаписатьЗначение(СокрЛП(БинарныйФайл)); //Base64Строка(Новый ДвоичныеДанные("D:\Файл.xml"))
ЗаписьJSON.ЗаписатьЗначение(СокрЛП(Base64Строка(БинарныйФайл)));
ЗаписьJSON.ЗаписатьКонецОбъекта();
СтрокаJSON = ЗаписьJSON.Закрыть();
Исключение
ОтветХТТП.УстановитьТелоИзСтроки(ОписаниеОшибки());
Возврат ОтветХТТП;
КонецПопытки;
ОтветХТТП.УстановитьТелоИзСтроки(СтрокаJSON); //если имя и бинарник
Показать
Вакансии
Разработчик 1С (от middle до senior), до 300 К gross
Санкт-Петербург
зарплата от 195 000 руб. до 300 000 руб.
Полный день
Санкт-Петербург
зарплата от 195 000 руб. до 300 000 руб.
Полный день