Об'єкт files описує команди роботи з файлами, що завантажуються, доступні в поточній кінцевій точці. Імена властивостей об'єкта являють собою імена команд. Кожна властивість являє собою об`єкт наступної структури:
Зазвичай використовується з елементом керування UploadFile.
Команда задається у властивості Url елементу керування.
| Ім'я | Тип | Опис | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| type | enum |
Обов'язково. Тип операції з файлом:
|
||||||||
| parse | enum |
Обов'язково для операції parse. Формат файлу, що розбирається.
|
||||||||
| locale | string | Не обов'язково. Локаль для розбору файлів. Текстовий рядок, що представляє мову і, опціонально, країну. Наприклад: "uk", "uk-UA" для України. Використовується зокрема для розбору чисел (десятичний роздільник, роздільник тисяч). Якщо не вказана, використовується стандартний вид (крапка в якості десятичного роздільника). | ||||||||
| source | string | Не обов'язково. Джерело даних. Якщо не вказано, береться з батьківського елементу. | ||||||||
| schema | string | Не обов'язково. Ім'я sql-схеми. Якщо не вказано, береться з батьківського елементу. | ||||||||
| model | string | Ім'я моделі. Якщо не вказано, береться з батьківського елементу. Якщо дорівнює пустому рядку, то модель не зберігається в базі даних, а просто повертається на клієнт. | ||||||||
| container | string | Обов'язково для типу azureBlob. Ім'я контейнера в Azure Storage. |
||||||||
| azureSource | string |
Тільки для типу azureBlob. Джерело (ім'я рядку підключення) для Azure Storage.
Якщо не вказано, то дорівнює "AzureStorage".
|
||||||||
| clrType | string | Обов'язково для типу clr. Рядок, що описує збірку і .NET тип. | ||||||||
| async | boolean | Тільки для типу clr. Асинхронне виконання clr-команди. | ||||||||
| parameters | object | Об'єкт, статичні параметри, які передаються в збережену процедуру оновлення моделі. Ім'я властивості є ім'ям параметра, значення - значенням параметра. | ||||||||
| imageCompress | object |
Керує стисканням зображень при завантаженні на сервер. Тільки для файлів JPEG.
|
Операція виконує розбір отриманого файлу (у відповідності до формату, вказаного у властивості parse) і представляє його у вигляді таблиці.
Якщо вказана модель, то система намагається зберігти отриману таблицю в базі даних.
Збереження моделі виконується наступним чином:
{source}: [{schema}].[{model}.Metadata]).
Ця процедура повинна повернути один запис з описом однієї таблиці. Ім'я таблиці попередньо визначене - Rows.
{source}: [{schema}].[{model}.Update]). Їй передається таблиця,
отримана на попередньому кроці. Процедурі передаються наступні параметри:
@TenantId, @UserId).parameters.@Rows (readonly) - Табличний тип. Дані таблиці.
Якщо значення властивості model дорівнює пустому рядку (""), то жодних додаткових
дій з результатом розбору файлу не виконується. Отримана таблиця просто повертається клієнту у вигляді об'єкта с
єдиною властивістю Rows, що містить масив записів вихідного файлу.
Ця операція просто зберігає отриманий файл в базі даних у вигляді байтівого масива (тип vabinary(max)).
Якщо задано параметр imageCompress, то файл (можливо) буде попередньо стиснений.
Для цього викликається збережена процедура {source}: [{schema}].[{model}.Update].
Їй передаються наступні параметри (такі самі, як і у випадку збереження вкладень):
| Ім'я | Тип | Опис |
|---|---|---|
| @UserId | bigint | Id поточного користувача. |
| @TenantId | bigint | Id тенанта (тільки в мультитенантному середовищі) |
| @Name | nvarchar(255) | Ім'я файлу (без шляху) |
| @Mime | nvarchar(255) | MIME -тип файлу |
| @Stream | varbinary(max) | Дані файлу (просто байти без перетворення) |
Зверніть увагу, що імена параметрів фіксовані!
Операція типу clr викликає метод з типу, заданного властивістю clrType. Тип повинен реалізовувати
інтерфейс IInvokeTarget. Детальніше....
В метод передається им'я, MIME-тип і потік (Stream) отриманого файла.