Перейти к содержанию

Введение#

В Лексеме существуют инструменты для работы с файлами (upload, download). Для загрузки файлов в систему из внешних источников в Лексеме существует элемент управления FileUpload. Он располагается на форме и может быть привязан к свойству модели (тип свойства при этом должен быть file). Сам файл будет храниться в системной таблице lex.Files, в столбце модели будет лишь ссылка на строку в lex.Files.

Также существует класс в JS с таким же наименованием. Это дает возможность осуществить загрузку файла по необходимости.

Элемент управления FileUpload#

Элемент управления FileUpload выглядит как ссылка, при нажатии на которую открывается диалоговое окно выбора файла для закачки на сайт.

В момент загрузки он выглядит как индикатор выполнения (progress bar), отображающий процесс загрузки.

Если файл уже загружен, то выглядит как ссылка, при нажатии на которую произойдёт загрузка файла с сайта.

Свойства#

Наименование Тип Описание
bind Строка свойство, к которому привязывается элемент управления
caption Строка заголовок
captionTextAlign Строка выравнивание текста заголовка элемента управления. По умолчанию значение left. Разрешенные значения: left, right
captionWidth Число ширина заголовка в колонках (для Bootstrap-верстки)
editorWidth Число ширина элемента управления в колонках (для Bootstrap-верстки)
fileId Строка уникальный идентификатор, использующийся для составления url, по которому будет загружен файл
hint Строка всплывающая подсказка, которая появляется при наведении на элемент управления
id Строка уникальный идентификатор элемента управления
tags Строка позволяет объединять элементы управления в группы, возвращает массив имен
visible Bool видимость элемента управления. По умолчанию значение true
width Строка ширина элемента управления в пикселях (px) или процентах (%)

События#

Наименование Описание
valueChanged Изменение значения

Примеры#

Простой элемент управления:

<FileUpload id='FileUpload1' />

С заголовком:

<FileUpload id='FileUpload1' caption='Фото документа' />

Класс FileUpload#

Данный класс даёт возможность инициировать процесс загрузки файла в Лексему из кода.

Методы#

Наименование Описание
choose(params) Статический метод, предназначен для выбора файла и загрузки его в базу данных. Возвращает объект типа Deferred.
Параметр params – объект, который содержит следующие свойства:
multiple – флаг, разрешающий загрузку нескольких файлов. По умолчанию значение false. Разрешенные значения: true, false;
deniedExtensions – список запрещенных к загрузке расширений файлов. По умолчанию пустой массив;
* maxSize – максимально допустимый размер загружаемого файла в Кбайтах.

Пример#

Метод открывает окно для загрузки файлов, результат выводит в консоль.

import { FileUpload } from 'ecosoft-lexema8'
.....
//загрузка нескольких файлов
FileUpload.choose({
  multiple: true
}).done((x) => {
  console.log(x);
}).fail(function(x) {
  console.log('error: ', x);
});

Результатом работы метода будет массив объектов, которые содержат свойство fileId – это идентификатор файлов в таблице lex.File.

Класс FileHelper#

Более универсальный класс, он может как сохранять файлы в систему, так и выгружать их из системы.

Методы#

Наименование Описание
download(ids, [params]) Выгружает файлы из Лексемы. ids – массив идентификаторов фалов в lex.Files. params – объект с дополнительными параметрами:
zip – флаг, отвечающий за то, нужно ли архивировать все файлы в один архив;
fileName – новое имя выгруженного из системы файла, при этом расширение файла остается прежним.
upload(params) Сохранение файлов в систему. Аналогичен FileUpload.choose.

Примеры#

  1. Скачивание файла из Лексемы:
const ids = ['2D9F0CB0-37FA-11E8-9C1F-05815C65B1ED'];
FileHelper.download(ids);
  1. Скачивание файла с указанием имени:
1
2
3
const id = '2D9F0CB0-37FA-11E8-9C1F-05815C65B1ED'
const fileName = 'простой файл'
FileHelper.download([id], {fileName})
  1. Скачивание файлов архивом:
singleFileBatch () {
const ids = [
'2D9F0CB0-37FA-11E8-9C1F-05815C65B1ED',
'664EAFB0-4787-11E8-905C-0FE6AAB411AB',
'50631AC0-3BE2-11E8-BCE6-158A5F66E507',
'D42F3A60-7EB7-11E8-A4B6-9F14595FC857',
'78BF49F0-7EB6-11E8-90C2-F9663FC8F0E6'
]
FileHelper.download(ids)
}