Данные типа file - это любые файлы: картинки, аудио и видео файлы, дистрибутивы программ, документы, в том числе html-документы. Как они используются на страничке (отображаются, проигрываются или скачиваются) задается в шаблоне. В дескрипторе же просто задется тип - file, а пользователь просто закачивает файл на сайт.
Приведем пример шаблона, с помощью которого пользователь может закачивать файлы на сервер, а посетитель скачивать их:
file.tpl<?php echo " {$dat['edit']} <a href='datafiles/$dat[1]'>Скачать файл: $dat[1]</a> ";?>file.tdd
<?php
$types[1]='file';
?>
Значением file-данного является имя файла. Файлы закачиваются из окна редактирования и автоматически помещаются в папку ./datafiles на сервере. Если в этой папке уже имеются файлы с таким же именем, то к имени файла приписывается последовательный номер. Таким образом, имя файла пользователем непосредственно не редактируется.
Имя параметра | Назначение параметра | Значения (аргументы) параметра | Примечания |
---|---|---|---|
allowedFormats | Форматы (типы) файлов, разрешенные для закачки | Перечень расширений имен файлов, через запятую. allowedFormats(gif,png) forbiddenFormats(exe) |
По умолчанию для изображений применяется список: 'bmp', 'gif', 'jpg', 'jpeg', 'png', 'svg', 'webp'. |
forbiddenFormats | Форматы (типы) файлов, запрещенные для закачки | ||
renameFileByField | Переименовать закачанный файл, используя в качестве имени текст из указанного поля. |
renameFileByField(1, 300, 2) |
|
destination | Альтернативная папка назначения для закачиваемых файлов | Путь относительно корневой папки сайта. destination |
|
chunk | Закачивать файл по частям | Размер одной части в байтах Закачивать по 10 МБ: |
|
Пример:
.tdd
<?php
$types[4] = "file allowedFormats('zip','rar','arj') destination('datafiles/archive')";
$types[5] = "file forbiddenFormats('exe','com')";
?>
Имя параметра | Назначение параметра | Значения (аргументы) параметра | Примечания |
---|---|---|---|
maxWidth | Максимальная ширина изображения | Целое положительное число (пиксель). maxWidth(800) maxHeight(800) |
|
maxHeight | Максимальная высота изображения | ||
thumbnail | Создание миниатюры заданных размеров | Способ создания, ширина, высота, выравнивание, цвет фона. thumbnail(crop, 160) thumbnail(crop, 160, 120, top) thumbnail(fit, 160, 120, bottom, #fff)
|
|
format | Преобразовать файл к новому формату (типу) | Одно из слов: 'bmp', 'gif', 'jpg', 'jpeg', 'png', 'svg', 'webp'. format(jpg) |
Если формат не задан, изображение будет преобразовано в webp. |
widthField | Номер поля, в которое автоматически будет записываться значение ширины закачанного изображения | Целое положительное число (номер поля). widthField(3) heightField(4) |
|
heightField | Номер поля, в которое автоматически будет записываться значение высоты закачанного изображения | ||
quality | Качество изображения | Число от 0 до 100. quality(50) | По умолчанию установлено значение 30%, что дает удовлетворительное качество при наименьшем размере файла. Формат WEBP для растровых изображений |
sourceField | В качестве источника будет использоваться файл, который находится в поле, номер которого записан в этот параметр. | Целое положительное число (номер поля источника). sourceField(1) |
|
stamp | Штамп (водяной знак, watermark) | URL изображения. stamp |
|
Пример:
.tdd
<?php
$types[1] = 'file widthField(2)';
$types[2] = 'int(4)';
$types[3] = 'file maxWidth(100) maxHeight(100) sourceField(1)';
$types[6] = "file stamp('templates/stamp.png')";
# Поле 3 можно скрыть
$fields['hidden'] = [3];
?>
Закачанный файл будет подвергается преобразованию согласно параметрам и сохраняется на сервере в папке datafiles. Изображения рекомендуется преобразовывать к формату .gif, .jpg, .png или webp.
Для оптимальной компрессии изображений рекомендуется на сервер установить Imagick (ImageMagick).