Об'єкт 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
) отриманого файла.