Kohana 3.2.0无法正确输出图像

时间:2011-09-11 02:58:47

标签: php kohana

我已经阅读了帖子output image in a Kohana 3.2 view,但代码在我的电脑上无效。

我写了一个动作,将图像输出到浏览器 (如果我将超类更改为Controller,它仍然无效。),代码如下:

class Controller_Portal extends Controller_Template {
    public function action_view() {
        $filename = "E:\workspace\myphoto.jpg";

        $this->response->headers('Content-Type', File::mime($filename))
            ->send_headers()  // If I remove this line, It still doesn't work
            ->body(file_get_contents($filename));

        exit;
    }
}

4 个答案:

答案 0 :(得分:1)

在我在操作中添加$this->auto_render = FALSE;并在结尾处删除了exit;之后,它才有效。

答案 1 :(得分:1)

您应该使用send_file()

$this->response->send_file($filename, NULL, array('inline' => true));

调用此方法后,无法进行任何处理,方法在发送文件时调用exit

答案 2 :(得分:0)

this SO question中似乎有一个可行的,已接受的答案,因此可能值得尝试使用的确切代码并查看它是否有效。

唯一的区别似乎是删除了->send_header()片段,但你永远不知道:)

答案 3 :(得分:0)

@atma: 与发送文件完全正确但是: 这不完全正确。您可以在调用退出后进行任何处理。 有几种方法。首先可以是一个回调:register_shutdown_function()另一种方法是创建一个“后处理类”, 它具有“函数__destruct()”,在调用退出后调用它。

我的2美分:)