在我的控制器动作中,我有这个:
$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
的形式发送。如何强制使用上面的内容类型发送响应?
答案 0 :(得分:8)
执行$this->response->type(array('pdf' => 'application/x-pdf'));
存储/替换api中提到的关联密钥的内容类型。使用$this->response->type('pdf');
设置类型。
编辑:也不要调用$this->response->send();
只返回响应对象return $this->response;
并让调度程序处理发送。