4

私のコントローラーアクションには、これがあります:

$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。上記のコンテンツ タイプを使用して応答を強制的に送信するにはどうすればよいですか?

4

1 に答える 1

8

api$this->response->type(array('pdf' => 'application/x-pdf'));に記載されているように、関連付けられたキーのコンテンツ タイプを格納/置換します$this->response->type('pdf');タイプを設定するために使用します。

編集:また$this->response->send();、応答オブジェクトreturn $this->response;を返すだけでなく、ディスパッチャに送信を処理させてください。

于 2013-03-31T14:22:10.633 に答える