create. Создание файла

^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 и браузер предложит посетителю сохранить этот файл. Получится примерно такой текстовый файл:

<?xml version="1.0" encoding="WINDOWS-1251"?>
<products>
   <product id="1" name="Бывает &quot;В кавычках&quot;"/>

   
<product id="2" name="Johnson&amp;Johnson"/>
</products>


Copyright © 1997–2024 Art. Lebedev Studio | http://www.artlebedev.ru Дата обновления: 10.09.2024