Поля
Объекта класса file.
Поле name. Имя файла
$файл.name
Поле содержит имя файла. Объект класса file имеет поле name, если пользователь закачал файл через поле формы. Также в конструкторе file::load может быть указано альтернативное имя файла.
Поле size. Размер файла
$файл.size
Поле содержит размер файла в байтах.
Поле text. Текст файла
$файл.text
Поле содержит текст файла. Использование этого поля позволяет выводить на странице содержимое текстовых файлов или результатов работы file::cgi и file::exec.
Автоматическая нормализация переводов строк делается для текстовых файлов (mode=text), но не делается для бинарных (mode=binary).
Чтобы сделать нормализацию переводов строк для бинарных файлов, например тех, которые были получены из form, необходимо воспользоваться следующей конструкцией:
$f[^file::create[$form:file;$.mode[text]]
$f.text
Дополнительная информация о файле:
$файл.cdate — дата создания;$файл.mdate — дата изменения;$файл.adate — дата последнего обращения к файлу.
Поля доступны, если объект получен конструкторами file::stat или file::load путем загрузки локального файла [3.3.0]
Поле stderr. Текст ошибки выполнения программы
$файл.stderr
При выполнении file::cgi и file::exec сюда попадает текст из стандартного потока ошибок программы.
Поле status. Статус получения файла
$файл.status
При выполнении file::cgi и file::exec в поле status попадает статус выполнения программы (0 = успех).
При выполнении file::load с HTTP-сервера, сюда попадает статус выполнения HTTP-запроса (200 = успех).
Поле mode. Формат файла
$файл.mode
Может иметь значение text или binary. [3.4.0]
Поле content-type. MIME-тип файла
$файл.content-type
Поле может содержать MIME-тип файла. При выполнении CGI-скрипта (см. file::cgi) MIME-тип может задаваться CGI-скриптом, полем заголовка ответа content-type. При загрузке (см. file::load) или получении информации о файле (см. file::stat) MIME-тип определяется по таблице $MAIN:MIME-TYPES (см. «Конфигурационный метод»), если в таблице расширение имени файла найдено не будет, будет использован тип application/octet-stream.
Поля HTTP-ответа
Если файл был загружен с HTTP-сервера, поля заголовков HTTP-ответа доступны как поля объекта класса file:
$файл.ПОЛЕ_HTTP_ОТВЕТА
Имя поля ответа обязательно ЗАГЛАВНЫМИ БУКВАМИ. Например: $файл.SERVER
Если один заголовок повторяется в ответе несколько раз, все его значения доступны в поле tables:
$.tables[
$.HTTP-ЗАГОЛОВОК[таблица значений, единственный столбец value]
]
Пример
$f[^file::load[binary;HTTP://www.parser.ru]]
^f.tables.foreach[key;value]{
$key=^value.menu{$value.value}[|]
}[<br>]