^file::create[формат;имя;текст]
^file::create[формат;имя;текст;опции][3.4.0] ^file::create[строка;расширенные опции][3.4.2]
^file::create[файл;расширенные опции][3.4.2]
Создает объект класса file с указанными именем и содержимым.
При создании текстовых файлов производится нормализация символов переводов строк.[3.4.2]
Формат - формат представления создаваемого файла. До версии 3.4.2 поддерживался только текстовый (text) формат.
Опции - хеш, в котором можно указать $.from-charset[кодировка], или $.to-charset[кодировка], или $.content-type[...]. [3.4.1] [3.4.5] Расширенные опции - хеш, в котором, помимо обычных опций, можно указать еще и $.name[имя файла], $.mode[формат]
Примечание: если нужно строку сохранить на диск сервера, есть более простой подход: ^string.save[…].
Примечание: до версии 3.4.5 параметра с кодировкой, из которой нужно преобразовать данные (from-charset), не было, а параметр с кодировкой, в которую нужно преобразовать данные, назывался не to-charset, а просто charset.
Пример выгрузки данных в XML виде
#export.html
^connect[строка соединения]{
$products[^table::sql{select product_id, name from products}]
$file[^file::create[text;export.xml;^untaint[xml]{<?xml version="1.0" encoding="$request:charset"?>
<products>
^products.menu{<product id="$products.product_id" name="$products.name"/>}
</products>
}]]
$response:download[$file]
}
При открытии этого документа произойдет создание файла export.xml и браузер предложит посетителю сохранить этот файл. Получится примерно такой текстовый файл: