Intereting Posts
Вывод ZipArchive () в формате дерева explode () в пару $ key => $ value Хотите показать «загрузка …» на странице PHP Неверный тайм-аут PHP cURL PHP file_get_contents возвращается с ошибкой 400 Получение: допустимый объем памяти 33554432 байт исчерпан как перенаправить на другую страницу после того, как условие выполнено в php? Ошибка воспроизведения демонстрации «Вы не можете определить элемент последовательности, когда в картировании» mysql_query () возвращает true, но mysql_num_rows () и mysql_fetch_array () дают "недействительные ошибки ресурса nginx 502 плохой шлюз Есть ли способ (в PHP) обнаружить, был ли скрипт вызван загрузкой jQuery или нет? on localhost redirect работает над ошибкой hostgator Невозможно изменить информацию заголовка (php) Как настроить пользовательские заголовки для отдельных действий контроллера в ZF2? Почему вы не должны использовать mysql_fetch_assoc более 1 раза? Проверка Laravel, если запись существует

Скачать файл с 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) работает нормально.