У меня есть следующее дерево в моем приложении HMVC.
-application
-modules
-moduleOne
-assets
-controllers
-models
-views
-uploads
-images
Что мне нужно, это загрузить изображения (из папки загрузок / изображений) в виде. Как я могу это сделать? Папка активов работает нормально, но мне нужно разделить папку загрузок.
Я использую библиотеку активов:
В приложении / modules / moduleOne / controllers / Assets.php у меня есть:
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
// include the global Assets class
include(APPPATH.'libraries/Assets.php');
А в библиотеках / Assets.php
<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Assets extends MX_Controller {
function __construct() {
parent::__construct();
}
function index(){
//$this->user->authorize();
if(count($this->uri->segments)==2){
show_error("Serving assets for: ".APPPATH. 'modules/' . implode('/', $this->uri->segments));
exit;
}
//---get working directory and map it to your module
$file = APPPATH. 'modules/' . implode('/', $this->uri->segments);
//----get path parts form extension
$path_parts = pathinfo( $file);
//---set the type for the headers
$file_type= strtolower($path_parts['extension']);
if (is_file($file)) {
//----write propper headers
switch ($file_type) {
case 'css':
header('Content-type: text/css');
break;
case 'js':
header('Content-type: text/javascript');
break;
case 'json':
header('Content-type: application/json;charset=UTF-8');
break;
case 'xml':
header('Content-type: text/xml');
break;
case 'pdf':
header('Content-type: application/pdf');
break;
case 'svg':
header('Content-type: image/svg+xml;charset=UTF-8');
break;
case 'jpg' || 'jpeg' || 'png' || 'gif':
header('Content-type: image/'.$file_type);
break;
}
readfile($file);
} else {
show_error("Asset not found: $file");
}
exit;
}
}
Это позволяет мне использовать ресурсы внутри моего модуля. Но мне нужно сделать ссылку в img src на папку uploads / images.