|   |   | 
| 
 | Как передать картинку с мобильного приложения | ☑ | ||
|---|---|---|---|---|
| 0
    
        Vvvvv 10.09.18✎ 15:05 | 
        Возник вопрос, как передать картинку с мобильного приложения, в рабочую базу. 
 Картинка будет получаться в камеры телефона. Интересует как возвращаться? На данный момент мобильное приложение обращается к рабочей базе через http сервис. Если как текст передать, я имею представления, но как картинку, даже не представляю еще? | |||
| 1
    
        s03 10.09.18✎ 15:08 | 
        также как и любой другой файл, передавай как самые обычные двоичные данные, например, а при получении собирай обратно в картинку     | |||
| 2
    
        Vvvvv 10.09.18✎ 15:28 | 
        (1) Значит картинку шифрую в двоичные данные и передаю в другую базу через http соединие     | |||
| 3
    
        Vvvvv 11.09.18✎ 16:46 | 
        Нужна помощь.
 На мобильном приложении через камеру сделал фото, получил двоичные данные этой фотографии Дальше не могу понять как отправить в каком формате и соответсвенно как принять файл? | |||
| 4
    
        arsik гуру 11.09.18✎ 16:52 | 
        base64     | |||
| 5
    
        Vvvvv 11.09.18✎ 16:53 | 
        (4) по подробнее     | |||
| 6
    
        arsik гуру 11.09.18✎ 16:53 | ||||
| 7
    
        Пуля 11.09.18✎ 16:54 | 
        Отправь на почту или фтп, и читай оттуда.     | |||
| 8
    
        DmitrO 11.09.18✎ 17:36 | 
        (3)С мобильного девайса делаем POST запрос, в тело запроса закидываем двоичные данные картинки методом HTTPЗапрос.УстановитьТелоИзДвоичныхДанных().
 На сервере получаем тело запроса HTTPСервисЗапрос.ПолучитьТелоКакДвоичныеДанные(). | |||
| 9
    
        Vvvvv 11.09.18✎ 18:26 | 
        (4) при передаче через http сервис, этот метод не подходит,  т.к. обрезаются символы
 (8) не сочти за наглость, но есть конкретный пример? | |||
| 10
    
        icipher 11.09.18✎ 21:02 | 
        Фото = СредстваМультимедиа.СделатьФотоснимок(ТипКамерыУстройства.Задняя, НастройкиКамеры, 90);
 ДанныеИзображения = Base64Строка(Фото.ПолучитьДвоичныеДанные()); потом ДанныеИзображения в структуру, структуру в json, json в тело запроса, запрос в сервер) | |||
| 11
    
        Sasha_H 11.09.18✎ 21:07 | 
        только надо еще сжать хранилищем     | |||
| 12
    
        Vvvvv 11.09.18✎ 21:26 | 
        (10) В примере
 ДанныеИзображения = Base64Строка(Фото.ПолучитьДвоичныеДанные()); ДанныеИзображения - будет длинная строка при передаче через http сервис, строка обрежется до какого то числа символов. Структура в json, это тоже текстовое представление будет | |||
| 13
    
        Sasha_H 11.09.18✎ 21:43 | 
        &НаСервереБезКонтекста
 Функция СериализоватьДанные(Объект) //Если Объект.Количество() = 0 Тогда Возврат "" КонецЕсли; ХДТО = СериализаторXDTO.ЗаписатьXDTO(Объект); хмл = Новый ЗаписьXML; хмл.УстановитьСтроку(); ФабрикаXDTO.ЗаписатьXML(хмл,ХДТО); РезХМЛ = хмл.Закрыть(); Возврат РезХМЛ; КонецФункции ПакетХМЛ = СериализоватьДанные(Соединения); СжатыйПакетХДТО = Новый ХранилищеЗначения(ПакетХМЛ, Новый СжатиеДанных(9)); //Отправка SOAP-запроса Попытка Ответ = СтруктураДанных.ВСПрокси.Exchange(ФабрикаXDTO.Создать(СтруктураДанных.ТипыXDTO[0], IMEI), ФабрикаXDTO.Создать(СтруктураДанных.ТипыXDTO[1], СериализоватьДанные(СжатыйПакетХДТО))); Исключение Сообщить(ОписаниеОшибки()); Возврат Ложь; КонецПопытки; //на приемнике Функция ДесериализоватьДанные(XML) Чтение = Новый ЧтениеXML; Чтение.УстановитьСтроку(XML); Данные = СериализаторXDTO.ПрочитатьXML(Чтение); Чтение.Закрыть(); Возврат Данные; КонецФункции ОбменПоНастройке = ДесериализоватьДанные(Struct); Если ТипЗнч(ОбменПоНастройке) = Тип("ХранилищеЗначения") Тогда ДанныеХранилища = ОбменПоНастройке.Получить(); ОбменПоНастройке = ДесериализоватьДанные(ДанныеХранилища); КонецЕсли; | |||
| 14
    
        Юрий Лазаренко 11.09.18✎ 21:49 | 
        (12) Ты наверно get-запросом передаешь, он обрезается. Передавай post-запросом.     | |||
| 15
    
        Sasha_H 11.09.18✎ 21:52 | 
        Здесь пример того как вообще весь пакет обмена обворачивается и сжимается     | |||
| 16
    
        Sasha_H 11.09.18✎ 21:53 | 
        что значительно экономит пакет передаваемых данных в канале     | |||
| 17
    
        DmitrO 11.09.18✎ 23:58 | 
        (12)по умолчанию на IIS есть ограничение на размер загружаемых в запросе данных 30000000.
 Этот лимит надо просто увеличить в web.config на сервере: <system.webServer> <security> <requestFiltering> <requestLimits maxAllowedContentLength="100000000" /> </requestFiltering> </security> </system.webServer> | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |