在Kohana 3.2视图中输出图像

时间:2011-08-26 11:37:01

标签: php image view kohana

我有以下脚本将图像输出到浏览器,工作正常。

$file_to_output=$_SERVER['DOCUMENT_ROOT'].'/static/imgs/uploads/20110318172207_16.jpg';
header('Content-Type: image/jpeg');
$raw=imagecreatefromjpeg($file_to_output);

// Output the image
imagejpeg($raw);

// Free up memory
imagedestroy($raw);

当我在视图中放置完全相同的代码时,它不再起作用并给出一堆像这样的stange字符:      JFIF > CREATOR:gd-jpeg v1.0(使用IJG JPEG v62),默认质量 C

我需要做些什么才能让它在视图中工作?

2 个答案:

答案 0 :(得分:5)

你不应该把它放到视图中。所有视图输出都是缓冲的,稍后通过Response对象返回。

这是所有响应逻辑,因此您的操作代码应如下所示:

$path = DOCROOT.'static/imgs/uploads/20110318172207_16.jpg';

$this->response->headers('content-type',File::mime($path))
    ->body(file_get_contents($path));

答案 1 :(得分:3)

另一种方式是:

$path = DOCROOT.'static/imgs/uploads/20110318172207_16.jpg';

// Send file as download
$this->response->send_file($path);

// Send file as inline
$this->response->send_file($path, NULL, array('attachment' => 'inline'));

// Another way to send as inline
$this->response->body(file_get_contents($path));
$this->response->send_file(TRUE, $path);

请参阅Response#send_file