|
Передача файлов (фото, видео) из 1С:Mobile на серверную БД |
☑ |
0
Cmyk32
25.03.14
✎
16:40
|
Добрый день!
Есть мобильное приложение (МП) и на сервере центральная БД 1С (ЦБД) + web-сервер.
Как лучше организовать передачу файлов МП -> ЦБД?
Размер файлов: от 200 кб до 5 мб.
Сейчас передаю как двоичные данные - очень медленно.
|
|
1
MrJcnby
25.03.14
✎
17:10
|
Как вариант - пожертвовать качеством фото. Заметно урежет размер, и как следствие время передачи.
Сами с этим столкнулись.
|
|
2
Cmyk32
25.03.14
✎
18:47
|
(1) Урезала все + СжатиеДанных(9). Можете оценить -сколько минут/секунд у Вас занимает передача 1Мб?
Может неверно организовала передачу самого файла по веб-серверу?
На мобильном приложении:
ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
Файл.ХранилищеЗначения.Получить().Записать(ИмяВременногоФайла);
ФайлПередачи = Новый ДвоичныеДанные(ИмяВременногоФайла);
ТипДвоичныеДанные = ФабрикаXDTO.Тип(";, "base64Binary");
ДвоичныеДанные = ФабрикаXDTO.Создать(ТипДвоичныеДанные, ФайлПередачи);
Попытка
ФайлОбъект = Файл.ПолучитьОбъект();
ФайлОбъект.Выгружено = Прокси.DownloadPhoto(ДвоичныеДанные, Выборка.Наименование);
ФайлОбъект.Записать();
Исключение
КонецПопытки;
На сервере:
Функция DownloadPhoto(ДвоичныеДанные, Наименование)
ХранилищеЗначения = Новый ХранилищеЗначений(ДвоичныеДанные);
ФайлСсылка = Справочники.Файлы.НайтиПоНаименованию(Наименование);
Если ФайлСсылка.Пустая() Then
ФайлОбъект = Справочники.Файлы.СоздатьЭлемент(); Иначе
ФайлОбъект = ФайлСсылка.ПолучитьОбъект();
КонецЕсли;
ФайлОбъект.Наименование = Наименование;
ФайлОбъект.ХранилищеЗначения = ХранилищеЗначения;
Попытка
ФайлОбъект.Записать();
Исключение
Возврат Ложь;
КонецПопытки;
Возврат Истина;
КонецФункции
|
|
3
MrJcnby
26.03.14
✎
10:38
|
Технология такая же. Тоже в преобразование в двоичные данные, передача, преобразование из двоичных данных. По скорости ( но я уверен что постоянной одинаковой скорости провайдер не дает ) - получается 1мб что-то около минуты (может быть меньше может быть чуть больше - в зависимости от связи).
|
|
4
Адинэснег
26.03.14
✎
10:40
|
|
|
5
MrJcnby
26.03.14
✎
16:13
|
(4) Хм. Как я понял вопрос стоит именно в части кода, а не в технологии соединения.
|
|
6
Cmyk32
26.03.14
✎
17:08
|
(5) Вы правильно поняли.
(4) Затратно.
|
|
7
Cmyk32
26.03.14
✎
17:09
|
(3) Спасибо!) У нас также примерно.
|
|
8
Serginio1
26.03.14
✎
18:26
|
Можешь попробовать передавать не как ДД а как хранилищеЗначения
v8: Работа с веб сервисом
Хотя картинки сжиматься не будут.
|
|
9
Йохохо
26.03.14
✎
18:30
|
а какой размер у картинки и у base64Binary картинки?
|
|
10
Asmody
26.03.14
✎
18:52
|
В мобильном приложении HTTPСоединение.post() доступно?
|
|
11
Serginio1
26.03.14
✎
18:58
|
(9) wiki:Base64#MIME
Результирующие закодированные по base64 данные имеют длину, большую оригинальной в соотношении 4:3.
|
|
12
Йохохо
26.03.14
✎
19:00
|
(11) м, я думал хуже, не стал гуглить
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший