Скачать файл с Slim Framework 2.4

Я пытаюсь позволить пользователю загрузить файл в платформе Slim php.

Предполагаемое использование заключается в том, что файл будет:

http://api.test.com/item/123.json <- возвращает строку json с данными

http://api.test.com/item/123.pdf <- скачать pdf-файл с удобной для восприятия информацией

У меня есть код, создающий PDF-файл, но мне нужно, чтобы Slim отправил правильные заголовки, чтобы файл был загружен.

Это следующий код, который у меня (работает) для существующей системы:

header("Pragma: public"); header('Content-disposition: attachment; filename='.$f->name); header('Content-type: ' .$f->type); header('Content-Transfer-Encoding: binary'); echo $f->data; 

Ниже приведен мой текущий (нерабочий) Slim-код, где объявляемые заголовки не отправляются в браузер. Вместо этого я получаю text / html. (Обратите внимание, что этот пример содержит только один заголовок, я также тестировал, чтобы увидеть, приведет ли какое-либо другое манипулирование заголовком какой-либо эффект, но оно не имеет). Ключ переключения json / pdf / xml будет добавлен позже.

 R::setup(); $app = new \Slim\Slim(); $app->get('/item', function() use ($app) { $f = R::load('file', 123); $app->response->headers->set("Content-Type", "application/pdf"); //$f->type $app->response->setBody($f->data); }); $app->run(); 

Однако $ app-> response-> setBody ($ f-> data) работает нормально.