Статическое поле download
Задание нового тела ответа.
$response:download[DATA]
Идентичен $response:body, но выставляет флаг, который браузер воспринимает как «Предложить посетителю сохранить файл на диске».
Имя файла передается браузеру в заголовке Content-Disposition. С версии 3.5.0 в него добавлено поле filename* для поддержки имен файлов в кодировке UTF-8.
Браузеры умеют отображать файлы некоторых типов прямо внутри своего окна (например DOC- и PDF-файлы). Однако бывает необходимо дать возможность посетителю скачать файл по простому нажатию на ссылку.
Пример: выдача PDF-файла
Посетитель заходит на страницу с таким HTML:
<a href="/documentation.html">Открыть документацию</a>
<a href="/documentation.html?download">Скачать документацию</a>
и нажимает на ссылку.
Содержимое documentation.html:
$file[^file::load[binary;documentation.pdf]]
^if($request:query eq "download"){
$response:download[$file]
}{
$response:body[$file]
}
Браузер предлагает ему скачать или открыть файл.