|
0
Spartak13
17.06.26
✎
15:32
|
Самописная конфигурация. Есть мобильный клиент. Нужно загрузить файл на сервер с телефона. Есть такой код:
&НаСервере
Функция ЗагрузитьФайлыНаСервере(Знач Адрес,Знач Расширение) Экспорт
СтруктураХранения = РаботаСФайлами.ПолучитьСтруктуруВХранилище();
Если СтруктураХранения.ПолноеИмя = "" Тогда
Сообщить("Не настроено хранилище");
Возврат "";
КонецЕсли;
ИмяФайлаСохранения = СтруктураХранения.ПолноеИмя + Расширение;
ФайлВременногоХранилища = ПолучитьИзВременногоХранилища(Адрес);
ФайлВременногоХранилища.Записать(ИмяФайлаСохранения);
УдалитьИзВременногоХранилища(Адрес);
Файл = Новый Файл(ИмяФайлаСохранения);
Если Файл.Существует() Тогда
Возврат СтруктураХранения.ИмяФайла + Расширение;
Иначе
Сообщить("Ошибка при сохранении файла на сервере.");
Возврат "";
КонецЕсли;
КонецФункции
&НаКлиенте
Процедура ВыполнитьЗагрузку(Результат,Адрес,ПомещаемыйФайл,СтрокаДанных) Экспорт
Если НЕ Результат Тогда
Возврат;
КонецЕсли;
Файл = Новый Файл(ПомещаемыйФайл);
СтрокаДанных.ИмяФайла = Файл.Имя;
СтрокаДанных.ИмяФайлаВХранилище = ЗагрузитьФайлыНаСервере(Адрес,Файл.Расширение);
Если СтрокаДанных.ИмяФайлаВХранилище <> "" Тогда
СтрокаДанных.ЕстьОбъект = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Добавить_ЗагрузитьФайл(Команда)
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
Попытка
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
Исключение
Возврат;
КонецПопытки;
ЭтаФорма.Элементы.Файлы.ДобавитьСтроку();
ПроцедураОбработки = Новый ОписаниеОповещения ("ВыполнитьЗагрузку",ЭтаФорма,Элементы.Файлы.ТекущиеДанные);
НачатьПомещениеФайла(ПроцедураОбработки,,ДиалогОткрытияФайла,Истина,УникальныйИдентификатор);
КонецПроцедуры
На мобильном клиенте не работает при выборе файла, ссылка на файл вида content://media/external/images/media/20 и на сервер файл не передается. Подскажите куда копать. Платформа 8,3,5???
|
|
|
1
Tatitutu
17.06.26
✎
15:53
|
ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
#Если МобильноеПриложениеКлиент Тогда
ВыборФайла.Каталог = КаталогБиблиотекиМобильногоУстройства(ПредопределенноеЗначение("ТипКаталогаБиблиотекиМобильногоУстройства.Картинки"));
#КонецЕсли
Если ВыборФайла.Выбрать() Тогда
ВыбранноеФото = Новый Картинка(ВыборФайла.ПолноеИмяФайла,Ложь);
ТекущееФото = ВыбранноеФото.ПолучитьДвоичныеДанные();
СсылкаНаЛого = ПоместитьВоВременноеХранилище(ТекущееФото, Новый УникальныйИдентификатор);
Иначе
СсылкаНаЛого="";
КонецЕсли;
возврат СсылкаНаЛого;
|
|