Symfony2 Rookie: как манипулировать контентом заголовка - PullRequest
1 голос
/ 07 февраля 2012

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

Итак, после некоторой работы и манипуляций, что-то подобное должно быть сделано в конце.

    header('Content-Type: application/x-bittorrent');
    header('Content-Disposition: attachment; filename="'.$torrent->filename.'"');
    echo (TrackerHelper::bencode($dict));
    exit;

Когда я делаю это, я получаю

Эта веб-страница не найдена

даже если я сделаю это в конце действия, страница также не найдена.

    header('Content-Type: application/x-bittorrent');
    header('Content-Disposition: attachment; filename="'.$torrent->filename.'"');
    //echo (TrackerHelper::bencode($dict));
    //exit;
    return new Response(TrackerHelper::bencode($dict));

Есть идеи?

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

Вы можете установить заголовки в ответе. Подпись конструктора для объекта ответа выглядит следующим образом:

public function __construct($content = '', $status = 200, $headers = array())

так что вы можете сказать что-то вроде:

return new Response(TrackerHelper::bencode($dict), 200, array(
  'Content-Type' => 'application/x-bittorrent', 
  [...]
);

В любом случае сообщение о том, что страница не найдена, может указывать на то, что вы делаете какую-то другую ошибку, проверьте свою маршрутизацию и свой контроллер!

0 голосов
/ 07 февраля 2012

попробуйте этот вариант:

$response = new Response(TrackerHelper::bencode($dict));
$response->headers->set('Content-Type', 'application/x-bittorrent');
$response->headers->set('Content-Disposition', 'attachment; filename="'.$torrent->filename.'"');

return $response;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...