|
Мобильная платформа. Передача больших файлов на сервер. | ☑ | ||
---|---|---|---|---|
0
nick_p-k
06.11.15
✎
14:18
|
Передаю с мобильного приложения фотографии на сервер.
Вроде все работало, пока не установил релиз 8.3.6.215. Перестали отправляться файлы больше 100 кБ. Вот думаю: откатиться на предыдующий релиз или все-таки надо бить файл на части? |
|||
1
nick_p-k
06.11.15
✎
14:18
|
Ну и код процедуры
Функция ВыгрузитьФайлВЦентральнуюБазу(Файл) ЗаписьXML = новый ЗаписьXML; ЗаписьXML.УстановитьСтроку("UTF-16"); ЗаписьXML.ЗаписатьОбъявлениеXML(); ЗаписьXML.ЗаписатьНачалоЭлемента("File"); ЗаписьXML.ЗаписатьАтрибут("Наименование",СокрЛП(Файл.Наименование)); ЗаписьXML.ЗаписатьАтрибут("Расширение",СокрЛП(Файл.Расширение)); ЗаписьXML.ЗаписатьАтрибут("Идентификатор",ИдентификацияОбъектовСервер.ПолучитьИдентификаторПоСсылке(Файл)); Строка64 = Base64Строка(Файл.ФайлХранилище.Получить()); Строка64 = СтрЗаменить(Строка64, Символ(10), ""); Строка64 = СтрЗаменить(Строка64, Символ(13), ""); ЗаписьXML.ЗаписатьАтрибут("ДвоичныеДанные",Строка64); ЗаписьXML.ЗаписатьКонецЭлемента(); XMLСтрока = ЗаписьXML.Закрыть(); СтрокаСоединения = Константы.НастройкиПодключенияСервер.Получить(); Соединение = Новый HTTPСоединение(СтрокаСоединения, , // порт Константы.НастройкаПодключенияИмяПользователя.Получить(), Константы.НастройкаПодключенияПароль.Получить(), , ); Запрос = Новый HTTPЗапрос("hs/MobileDevices/SetFile"); Запрос.УстановитьТелоИзСтроки(XMLСтрока); Попытка Ответ = Соединение.ОтправитьДляОбработки(Запрос); Исключение Причина = ОписаниеОшибки(); Сообщить(Причина); Возврат ложь; КонецПопытки; Если Ответ.КодСостояния <> 200 Тогда //Сообщить(Ответ.КодСостояния); Возврат ложь; КонецЕсли; Возврат истина; КонецФункции |
|||
2
nick_p-k
06.11.15
✎
14:32
|
ап
|
|||
3
DitriX
07.11.15
✎
13:37
|
Тут апать нечего, я сейчас с 1С воюю на эту тему :)
Такой баг проявляетс только с мобильной платофрмы версии 190+ (т.е. на 190 все работает), и только в том случае, если база на SQL висит, если файловая - все работает. |
|||
4
DitriX
07.11.15
✎
13:41
|
Ну и подсказка вам на будущее
Весь ваш код надо переделать, сделайте просто: Запрос.УстановитьТелоИзДвоичныхДанных(Файл.ФайлХранилище.Получить()); А доп параметры - передавайте через список заголовков. Делайте красиво :)А то если бы я не знал про эту ошибку, счел бы, что просто ваш код не верно отрабатывает :) |
|||
5
shachneff
11.11.15
✎
13:25
|
(3) 1С об этом знает? Не нашел в списках зарегистрированных ошибок, не нашел на партнерском. Собственно, и проблему-то на 8.3.6.215 повторить не могу. ЧЯНДТ?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |