|
Передача файлов с клиента на сервер | ☑ | ||
---|---|---|---|---|
0
DmitryR
27.08.20
✎
18:55
|
На клиенте есть 2 массива адресов изображений. Как передать их в процедуру на сервере? Соответственно на сервере должна быть возможность идентифицировать какое изображение какому массиву принадлежит.
Изначально использовалась следующая конструкция: ОписаниеОповещения = Новый ОписаниеОповещения("ДобавитьФайлКлиентЗавершение", ЭтаФорма); ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогОткрытияФайла.МножественныйВыбор = Истина; НачатьПомещениеФайлов(ОписаниеОповещения, , ДиалогОткрытияФайла, Истина, УникальныйИдентификатор); &НаКлиенте Процедура ДобавитьФайлКлиентЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт Если ВыбранныеФайлы <> Неопределено ТОгда PrintReportWordНаСервере(ВыбранныеФайлы); КонецЕсли; КонецПроцедуры |
|||
1
Мандалай
27.08.20
✎
18:56
|
Кури временное хранилище и двоичные данные.
|
|||
2
d4rkmesa
27.08.20
✎
19:19
|
(0) В чем отличие этих двух массивов? Обходом массива ВыбранныеФайлы их не идентифицировать?
|
|||
3
Провинциальный 1сник
27.08.20
✎
19:43
|
Можно просто сериализовать каждый файл в строку xml и передать с клиента на сервер. Хотя это не по феншую. Жаль, ЗначениеВСТрокуВнутр на клиенте не работает..
|
|||
4
DmitryR
27.08.20
✎
20:05
|
(2) Просто массивы с путями, должны вставляться в шаблон документа в разные таблицы. прим: mas1 -> tab1; mas2 -> tab2
|
|||
5
Web00001
28.08.20
✎
05:21
|
(0)>>Как передать их в процедуру на сервере?
Приблизительно вот так. Не благодари
|
|||
6
Web00001
28.08.20
✎
05:23
|
Но тебе же нужно передать не массивы адресов изображений? Тебе надо передать на сервер сами изображения? Я правильно за тебя додумал?
|
|||
7
Chameleon1980
28.08.20
✎
07:21
|
ответ в 1
|
|||
8
DmitryR
28.08.20
✎
09:46
|
Нужна помощь. Или я совсем все не так делаю??
НаКлиенте АдресаФото = Новый СписокЗначений; Для Каждого Стр Из Объект.тФото Цикл ПолноеИмяФайла = Стр.Путь; ДД = Новый ДвоичныеДанные(ПолноеИмяФайла); АдресаФото.Добавить("фото",ДД); КонецЦикла; Для Каждого Стр Из Объект.тФотоБрак Цикл ПолноеИмяФайла = Стр.Путь; ДД = Новый ДвоичныеДанные(ПолноеИмяФайла); АдресаФото.Добавить("брак",ДД); КонецЦикла; Адрес = ПоместитьВоВременноеХранилище(АдресаФото, ЭтаФорма.УникальныйИдентификатор); PrintReportWordНаСервере(Адрес) НаСервере СписокФото = ПолучитьИзВременногоХранилища(Адрес); Для Каждого Файл Из СписокФото Цикл Если Файл.Значение = "фото" Тогда пр = Файл.Представление; <-------- Как вот это поместить во временный файл? |
|||
9
FIXXXL
28.08.20
✎
09:50
|
(8) Файл = Новый Файл(ПутьКФайлуНаДиске);
ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлуНаДиске); АдресВременногоХранилищаФайла = ПоместитьВоВременноеХранилище(ДвоичныеДанные); |
|||
10
DmitryR
28.08.20
✎
10:07
|
(9) Мне нужен список файлов, а не один
|
|||
11
Web00001
28.08.20
✎
11:32
|
(10) Какая разница, один тебе нужен файл или 20? 20 раз помести файл в хранилище и 20 полученных адресов(адресов во временном хранилище, а не адресов к файлу на твоем компьютере) положи в массив. Где возникла проблема то?
|
|||
12
DmitryR
28.08.20
✎
13:24
|
(11) Сразу бы так, Спасибо.
Для потомков //Клиент мФото = Новый Массив;//в параметр на сервер мБрак = Новый Массив;//в параметр на сервер Для Каждого Стр Из Объект.тФото Цикл ПолноеИмяФайла = Стр.Путь; ДД = Новый ДвоичныеДанные(ПолноеИмяФайла); Адрес = ПоместитьВоВременноеХранилище(ДД, ЭтаФорма.УникальныйИдентификатор); мФото.Добавить(Адрес); КонецЦикла; Для Каждого Стр Из Объект.тФотоБрак Цикл ПолноеИмяФайла = Стр.Путь; ДД = Новый ДвоичныеДанные(ПолноеИмяФайла); Адрес = ПоместитьВоВременноеХранилище(ДД, ЭтаФорма.УникальныйИдентификатор); мБрак.Добавить(Адрес); КонецЦикла; //Сервер Для Каждого Адрес Из мФото Цикл Фото = ПолучитьИзВременногоХранилища(Адрес); ИмяВременногоФайла = ПолучитьИмяВременногоФайла("gpg"); Фото.Записать(ИмяВременногоФайла); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |