Cakephp 2, тип содержимого тела ответа не работает

$this->autoRender = false;
$this->response->header("HTTP/1.1 200 OK");
$this->response->header("Pragma: public");
$this->response->header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
$this->response->header("Cache-Control: private", false);

//$this->response->header("Content-type: image/png"); //tried also
$this->response->type('jpg');

$this->response->body(readfile($file));

return $this->response;

Всегда возвращает Content-Type: text/html; кодировка =UTF-8.

Спасибо

2 ответа

Решение
$this->response->body(readfile($file));

Измените эту строку на

$this->response->body(file_get_contents($file));

И работает.

Я знаю, что это более производительный readfile, но на данный момент должен работать.

Вероятно, что-то, что readfile разрывается с окончанием.

Вы можете легко загрузить файл с помощью:

      $this->autoRender = false;
$this->response->file($path, array('download' => true, 'name' => $name));
Другие вопросы по тегам