|
Как передать грамотно файл с клиента на сервер? | ☑ | ||
---|---|---|---|---|
0
Shur1cIT
13.08.21
✎
15:28
|
На стороне Клиента:
ФайлДвоичный = Новый ДвоичныеДанные(ПутьДоФайла); АдресХранилища = ПоместитьВоВременноеХранилище(ФайлДвоичный, ЭтаФорма.УникальныйИдентификатор); На стороне сервера: ДвоичныеДанныеФайл = ПолучитьИзВременногоХранилища(АдресХранилища); Тело = Base64Строка(ДвоичныеДанныеФайл); HTTPЗапрос.УстановитьТелоИзСтроки(Тело); Обратно из Base64 собрать файл не получается, причем файл не пустой, но при этом не открывается. Вопрос где косяк? |
|||
1
ДенисЧ
13.08.21
✎
15:30
|
НачатьПомещение... () сознательно не используешь?
|
|||
2
ildary
13.08.21
✎
15:33
|
(0) ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВХранилище);
ДвоичныеДанные.Записать(ВременноеИмя); |
|||
3
Kassern
13.08.21
✎
15:36
|
(1) только надо учитывать что данный метод: "Доступен, начиная с версии 8.3.15."
|
|||
4
Kassern
13.08.21
✎
15:37
|
(3) а всем кто до - переводим в ДД пихаем в хранилище, на сервере получаем из хранилища и записываем во временный файл.
|
|||
5
ptiz
13.08.21
✎
15:41
|
(0) "Обратно из Base64 собрать файл не получается" - как собираешь? Передаешь всё правильно.
|
|||
6
H A D G E H O G s
13.08.21
✎
15:41
|
(0)
Тело = Base64Строка(ДвоичныеДанныеФайл); Тело=СтрЗаменить(Тело,Символы.ПС,""); |
|||
7
Shur1cIT
13.08.21
✎
15:42
|
(4) те во временный файл сохраняю на сервере, далее уже получаю заново двоичные данные из временного файла?
те двоичные данные полученные сразу их хранилища не кошерны? |
|||
8
ptiz
13.08.21
✎
15:43
|
+(5) Вру... В тело не надо чистый Base64Строка пихать. См.(6)
|
|||
9
Shur1cIT
13.08.21
✎
15:45
|
(3) там еще приписка в описании, мол не рекомендуем использовать начиная с 15 платформы.
Доступен, начиная с версии 8.3.13. Не рекомендуется использовать, начиная с версии 8.3.15. Описание изменено в версии 8.3.15. |
|||
10
ptiz
13.08.21
✎
15:45
|
Обычно гоняют структуру в виде JSON. Сериализация в JSON поможет избежать таких проблем.
|
|||
11
Kassern
13.08.21
✎
15:46
|
(7) вопрос же стоял как передать файл, следовательно на сервере должен создаться файл. Поэтому и пихаем во временный файл, если надо только ДД, то и смысла нет файл создавать
|
|||
12
fisher
13.08.21
✎
15:47
|
(0) Я в похожей ситуации пихаю в хранилище значений и штатно его сериализую. Тогда и Base64 не надо и архивирование заодно.
|
|||
13
Shur1cIT
13.08.21
✎
16:01
|
(11) да но из ДД Base64 криво создаётся, видимо двоичные данные битые
|
|||
14
Fragster
гуру
13.08.21
✎
16:07
|
ПолучитьИзВременногоХранилища(АдресХранилища); на сервере если не указывать ид формы можно только один раз - есть мнение, что ты этим разом пользуешься при отладке :)
|
|||
15
H A D G E H O G s
13.08.21
✎
16:09
|
(13) Ты пробовал (6) ?
|
|||
16
rozer76
13.08.21
✎
16:09
|
(14) это если при поместить... а у него ПоместитьВоВременноеХранилище(ФайлДвоичный, ЭтаФорма.УникальныйИдентификатор);
|
|||
17
H A D G E H O G s
13.08.21
✎
16:09
|
ну и попробовать
УстановитьТелоИзДвоичныхДанных() |
|||
18
Shur1cIT
13.08.21
✎
16:17
|
(15) да, не помогло(
|
|||
19
d4rkmesa
13.08.21
✎
16:18
|
(9) Имеется виду, что функции из справки уже успели устареть и есть более новые: https://wonderland.v8.1c.ru/blog/unifikatsiya-metodov-raboty-s-faylami/?
|
|||
20
Кир Пластелинин
13.08.21
✎
16:22
|
(9) потому что появились новые функции по работе с файлами, а эти остались для обратной совместимости
|
|||
21
Shur1cIT
13.08.21
✎
17:17
|
проблема не в передачи с клиента на сервер, а в размещении другом ресурсе, понадеялся на Postman, завел отдельную тему Postman в каком формате передает файлы если поле имеет тип файл?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |