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

FileHelper (Класс)#

Класс из ecosoft-lexema8, содержит инструменты для работа с фалами.

Статические методы#

buildPdf#

Метод редактирования pdf-файлов, которые были загружены в систему

FileHelper.buildPdf(path, options)
параметр тип описание
path string Путь к скрипту без расширения. Обязательный.
options object дополнительные параметры
options.action string действие для работы с pdf объектом. Допустимые значения: download, upload. По умолчанию: download
options.fileId string идентификатор файла для редактирования
options.query object объект содержащий параметры для запроса
options.query.path string путь к файлу запроса
options.query.parameters object параметры запроса. Каждый параметр представляется в виде имя параметра - значение
options.fileName sting имя файла, под которым будет скачено вложение, при этом расширение файла остается прежним
options.storage sting имя хранилища из конфигурационного файла (gate.storages) для сохранения файла. Если не задано, то используется хранилище по умолчанию

Примечание

path - путь к скрипту указывается относительно папки, где расположены скрипты (по умолчанию pdfFunctions) без расширения (Пример: './report'), либо путь к скрипту без расширения, который указан в файле внешних зависимостей в разделе pdfFunctions (Пример: 'ecosoft-lexema8-test/lib/pdfFunctions/test').

Метод ничего не возвращает если action = download и возвращает fileId (идентификатор файла) если action = upload.

Пример 1 - Скачивание pdf файла
import { FileHelper } from 'ecosoft-lexema8'
.....
const fileId = '319D5190-590B-11EE-8134-094FCF19502F'
const preview = true
const query = {
    path: './uniAnalyt/loadData.query.json',
    parameters: { PrimaryKeyBoundary: 1, RowsOffset: 0, TopCount: 30, analyticsType: 'Город', depth: 1, topNode: 'города' }
}
const fileName = 'fileName'
const action = 'download' // 'open', 'upload'
FileHelper.buildPdf('test1', { action, fileId, preview, query, fileName })
.....
Пример 2 - Загрузка pdf файла в файловое хранилище
import { FileHelper } from 'ecosoft-lexema8'
.....
const fileId = '319D5190-590B-11EE-8134-094FCF19502F'
const query = {
    path: './uniAnalyt/loadData.query.json',
    parameters: { PrimaryKeyBoundary: 1, RowsOffset: 0, TopCount: 30, analyticsType: 'Город', depth: 1, topNode: 'города' }
}
const fileName = 'fileName'
const action = 'upload'
FileHelper.buildPdf('test2', { action, fileId, query, fileName })
.....
Пример описания объекта functions в конфигурационном файле
pdf: {
        protocol: 'http',
        host: 'localhost',
        port: 3086,
        script: 'ecosoft-lexema8-pdf-service',
        route: '/api/v2.0/pdf',
        functions: {
                test1: require.resolve('../source/validation/renderPdf.js'),
                test2: require.resolve('../source/validation/renderPdf2.js')
        }
}

download#

Метод для скачивания файла.

FileHelper.download(ids, options);
параметр тип описание
ids [string], [object] массив id вложений в хранилище. Обязательный. Массив может содержать id файла, либо оъект со свойствами: id - идентификатор файла, fileName - имя файла (без расширения) под которым будет скачено вложение (имеет больший приоритет над options.fileName)
options object дополнительные параметры
options.zip bool флаг, отвечающий за то, нужно ли архивировать все файлы в один архив
options.fileName string имя файла (без расширения), под которым будет скачено вложение. Расширение файла определяется автоматически.

Метод ничего не возвращает.

Пример 1 - скачивание одиночного файла
1
2
3
4
5
import { FileHelper } from 'ecosoft-lexema8'
.....
const id ='21d692a3-aad9-44c7-9c47-98a20efe228f';
FileHelper.download([id]);
.....
Пример 2 - скачивание набора файлов и их архивирование
1
2
3
4
5
6
7
8
import { FileHelper } from 'ecosoft-lexema8'
.....
const ids = ['ed34d812-f4c5-4e09-aa73-c666d35dc077',
    '21d692a3-aad9-44c7-9c47-98a20efe228f',
    '19e69367-bc3f-42c6-b890-0f968c259335'
];
FileHelper.download(ids, {zip: true});
.....
Пример 3 - скачивание набора файлов и их архивирование, сохранение архива с заданным именем
1
2
3
4
5
6
7
8
9
import { FileHelper } from 'ecosoft-lexema8'
.....
const ids = ['ed34d812-f4c5-4e09-aa73-c666d35dc077',
    '21d692a3-aad9-44c7-9c47-98a20efe228f',
    '19e69367-bc3f-42c6-b890-0f968c259335'
];
FileHelper.download(ids, { zip: true, fileName: 'AttachmetsName' });
.....
//скачается файл AttachmetsName.zip
Пример 4 - скачивание набора файлов и их архивирование, имена файлов задаются вручную
1
2
3
4
5
6
7
8
import { FileHelper } from 'ecosoft-lexema8'
.....
const ids = [{ id: 'ed34d812-f4c5-4e09-aa73-c666d35dc077', fileName: 'image' },
    { id: '21d692a3-aad9-44c7-9c47-98a20efe228f', fileName: 'document' },
    { id: '19e69367-bc3f-42c6-b890-0f968c259335', fileName: 'file' }
];
FileHelper.download(ids, { zip: true });
.....

downloadBinary#

Метод для скачивания файла в память браузера без сохранения в файловую систему.

FileHelper.downloadBinary(id, options);
параметр тип описание
id string id вложения в хранилище. Обязательный.
options object
options.preview bool параметр указывающий, что нужно скачать preview файл

Метод возвращает Deferred-объект, результом которого будет base64 строка.

Пример
1
2
3
4
5
6
7
8
9
import { FileHelper } from 'ecosoft-lexema8'
.....
const id ='21d692a3-aad9-44c7-9c47-98a20efe228f';
FileHelper.downloadBinary(id, { preview: true }).done((base64String) =>{
    console.log(base64String);
}).fail(function(x) {
    console.log('error: ', x);
});
.....

upload#

Метод для загрузки файла на сервер. Полностью аналогичен методу choose класса FileUpload

Пример 4 - загрузка файла с помощью метода upload
import { FileHelper } from 'ecosoft-lexema8'
.....
//загрузка нескольких файлов
FileHelper.upload({
    multiple: true
}).done((x) =>{
    console.log(x);
}).fail(function(x) {
    console.log('error: ', x);
});

uploadBinary#

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

FileUpload.uploadBinary(base64, options)
параметр тип допустимые значения по-умолчанию описание
base64 string файл в кодировке base64.
options object дополнительные параметры
options.fileName string file имя файла.
options.contentType string см. список MIME-типов application/octet-stream MIME-тип файла.
options.folder string путь к папке, в которой будет создан файл (используется для ftp, sftp, smb). Пример: 'myFolder/test'
options.storage string указывается имя хранилища из конфигурационного файла (gate.storages). В это хранилище будет сохраняться файл. Если storage не задан, то используется хранилище по умолчанию (определяется по настройке gate.storage).

Метод возвращает Deferred-объект, результом которого будет id-файла.

Пример
    import { FileHelper } from 'ecosoft-lexema8'
    .....
    const base64String = 'iVBORw0KGgoAAAANSUhEUgAAAAcAAAAJCAYAAAD+WDajAAAAAXNSR0IArs4c6QAAABZJREFUKFNj5OXl/c+AAzDy8fGNBEkAxpEKeAd0FEwAAAAASUVORK5CYII='
    FileHelper.uploadBinary(base64String,{
            fileName: 'file.png',
            contentType: 'image/png',
            storage: 'ftp'
    }).done((x) =>{
            console.log(x);
    }).fail(function(x) {
            console.log('error: ', x);
    });

move#

Метод для перемещения файла в новый каталог.

FileUpload.move(id, folder)
параметр тип описание
id string идентификатор файла
folder string путь к папке, в которую будет перемещен файл (используется только для протокола smb). Пример: 'newFolder/test'.
Пример
1
2
3
4
5
6
7
8
import { FileHelper } from 'ecosoft-lexema8'
.....
FileHelper.move('21d692a3-aad9-44c7-9c47-98a20efe228f', 'newFolder/myFiles').done(() => {
    console.log('done');
}).fail((err) => {
    console.log('error: ', err);
});
.....

delete#

Метод для удаления файла. Доступно для администратора и для пользователя с ролью FilePurger.

FileUpload.delete(id)
параметр тип описание
id string идентификатор файла
Пример
1
2
3
4
5
6
7
8
import { FileHelper } from 'ecosoft-lexema8'
.....
FileHelper.delete('21d692a3-aad9-44c7-9c47-98a20efe228f').done(() => {
    console.log('done');
}).fail((err) => {
    console.log('error: ', err);
});
.....

createPreview#

Метод для скачивания файла в память браузера без сохранения в файловую систему.

FileHelper.createPreview(ids);
параметр тип описание
ids Array список идентификаторов файлов

Метод возвращает Deferred-объект.

Пример
1
2
3
4
5
6
7
8
9
import { FileHelper } from 'ecosoft-lexema8'
.....
const ids = ['21d692a3-aad9-44c7-9c47-98a20efe228f'];
FileHelper.createPreview(ids).done(() => {
    console.log('done');
}).fail((err) => {
    console.log('error: ', err);
});
.....

getConversionStatus#

Метод для скачивания файла в память браузера без сохранения в файловую систему.

FileHelper.getConversionStatus(id);
параметр тип описание
id string идентификатор файла

Метод возвращает Deferred-объект, результом которого будет объект со свойством status.

Пример
1
2
3
4
5
6
7
8
9
import { FileHelper } from 'ecosoft-lexema8'
.....
const id = '21d692a3-aad9-44c7-9c47-98a20efe228f'
FileHelper.getConversionStatus(id).done((result) => {
    console.log(result);
}).fail((err) => {
    console.log('error: ', err);
});
.....

Примечания#

Формирование пути файлу при сохранении

{rootFolder из конфига}/{папка организации из системной формы (нужно включить настройку usePathForOrganization, затем указать папку в форме организации)}/{grouping из конфига}/{параметр folder, который принимает сервис file}