Это не предназначено как One-upmanship, но предложение pǝlɐɥʞ - это чистая реализация PHP, которая не так уж и пригодна для повторного использования. Вы хотели использовать синтаксис $ this-> load-> image ('images / gorilla.png'), так что вот как вы можете.
Создание /application/libraries/MY_Loader.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* Loader Class
*
* Loads views and files
*
* @package CodeIgniter
* @subpackage Libraries
* @author Phil Sturgeon
* @category Loader
* @link http://codeigniter.com/user_guide/libraries/loader.html
*/
class MY_Loader extends CI_Loader {
function image($file_path, $mime_type_or_return = 'image/png')
{
$this->helper('file');
$image_content = read_file($file_path);
// Image was not found
if($image_content === FALSE)
{
show_error('Image "'.$file_path.'" could not be found.');
return FALSE;
}
// Return the image or output it?
if($mime_type_or_return === TRUE)
{
return $image_content;
}
header('Content-Length: '.strlen($image_content)); // sends filesize header
header('Content-Type: '.$mime_type_or_return); // send mime-type header
header('Content-Disposition: inline; filename="'.basename($file_path).'";'); // sends filename header
exit($image_content); // reads and outputs the file onto the output buffer
}
Есть несколько способов использовать это:
Базовый вывод (по умолчанию jpeg)
$this->load->image('/path/to/images/gorilla.png');
Отправка MIME-типа для использования других типов изображений
$this->load->image('/path/to/images/gorilla.jpg', 'image/jpeg');
Вернуть изображение
$image = $this->load->image('/path/to/images/gorilla.php', TRUE);
Точно так же, как $ this-> load-> view, третий параметр, установленный в TRUE, означает, что он вернется вместо непосредственного вывода.
Надеюсь, это поможет: -)