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) формат.
Опции - хеш, в котором можно указать: $.charset[кодировка] или $.content-type[...] [3.4.1]
Расширенные опции - хеш, в котором можно указать: $.name[имя файла], $.mode[формат], $.charset[кодировка] или $.content-type[...]
Примечание: если файл нужно сохранить на диск сервера, есть более простой подход: ^string.save[…].
Пример выгрузки данных в 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="Бывает "В кавычках""/>
<product id="2" name="Johnson&Johnson"/>
</products>
User comments:
crypto | 14 апреля 2010 14:57 |
Хреново, что только текстовый формат файла можно создать. Мне вот прореплейсить байты у загруженного |