Codeigniter set_output函数不能与图像一起使用

时间:2018-03-08 03:02:42

标签: codeigniter

我正在尝试将图像作为输出,但似乎set_output()函数无法正常使用内容类型jpeg 我的代码如下......

$image = file_get_contents('assets/images/ThinkstockPhotos-145054512_small.jpg');
$this->output->set_content_type('jpeg')->set_output($image); 

当我用纯文本文件替换图像时,在这种情况下,它会显示正确的输出

$file = file_get_contents('assets/images/test.txt'); 
$this->output->set_content_type('text')->set_output($file);

我已将内容类型从set_content_type('jpeg')更改为set_content_type('jpg')set_content_type('gif'),但stil它不起作用,并且不会显示输出。

我现在得到的输出显示在下面的截图中。

enter image description here

1 个答案:

答案 0 :(得分:0)

我只能在file_get_contents提供(1)错误路径或(2)不存在的图像时才能在我的localhost设置上复制该问题。我认为您需要提供图像的完整路径,就像任何与目录/文件相关的操作一样。

尝试使用FCPATH所在的index.php,并假设您的assets/文件夹。

public function index() {
    $file = FCPATH . 'assets/images/ThinkstockPhotos-145054512_small.jpg';

    if (!is_file($file)) {
        exit('File not found!');
    }

    $image = file_get_contents($file);
    $this->output->set_content_type('jpeg')->set_output($image);
}

注意:如果您获得File not found!,请确保/htdocs/assets/...中的文件存在,其中/htdocs/index.php是您的主CI文件