我已经阅读了帖子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;
}
}
答案 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美分:)