Оригинал на GitHub
Вопрос
Подскажите, пожалуйста, возникла необходимость загрузки одного или нескольких файлов во временную таблицу (форму) с последующей их вставкой в простую таблицу по отдельности в каждую строчку. Я пробовал делать так:
Код-действия кнопки во временной таблице, который должен записать файлы в Простую:
=: listReplace(list: #h_file_field; action: $val; value: "value")
val: insert(table: 'simple_table'; field: 'file_field' = $filesdata)
filesdata: listCreate(item: $rowfile)
rowfile: rowCreate(field: "name" = $#value[name]; field: "filestring" = $#value[filestring])
Но этот код не работает.
Ответ
В приведенном примере не хватает получения содержимого файла, которое передается в filestring
. В нем в filestring
передается $#value[filestring]
в то время как в структуре поля Файл нет ключа filestring
, есть ключ file
, который содержит имя файла на сервере. Т.е. нужно получить содержимое файла по этому ключу file
.
Код действия кнопки:
=: listReplace(list: #h_file_field; action: $val; value: "value")
val: insert(table: 'simple_table'; field: 'file_field' = $filesdata)
filesdata: listCreate(item: $rowfile)
rowfile: rowCreate(field: "name" = $#value[name]; field: "filestring" = $content)
content: fileGetContent(file: $#value[file])
Функция fileGetContent
получает содержимое файла — текст или бинарник, как он хранится в файловой системе.