CakePHP忽略响应中的Content-Type设置

时间:2013-03-31 14:17:30

标签: php cakephp cakephp-2.3

在我的控制器动作中,我有这个:

$pdf = $this->Invoice->makePdf($invoice);
$this->response->charset('UTF-8');
$this->response->body($pdf);
$this->response->type(array('pdf' => 'application/x-pdf'));
$this->response->disableCache();
$this->response->send();

但是,无论我做什么,CakePHP总是将数据发送为text/html; charset=utf-8。我也试过

$this->response->header(array('Content-Type' => 'application/x-pdf'));

但它仍以text/html的形式发送。如何强制使用上面的内容类型发送响应?

1 个答案:

答案 0 :(得分:8)

执行$this->response->type(array('pdf' => 'application/x-pdf'));存储/替换api中提到的关联密钥的内容类型。使用$this->response->type('pdf');设置类型。

编辑:也不要调用$this->response->send();只返回响应对象return $this->response;并让调度程序处理发送。