135 lines
3.6 KiB
PHP
135 lines
3.6 KiB
PHP
|
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||
|
|
||
|
class Uploader extends CI_Controller {
|
||
|
|
||
|
/* Constructor */
|
||
|
|
||
|
public function __construct()
|
||
|
{
|
||
|
parent::__construct();
|
||
|
$this->load->helper(array('jbimages','language'));
|
||
|
|
||
|
// is_allowed is a helper function which is supposed to return False if upload operation is forbidden
|
||
|
// [See jbimages/is_alllowed.php]
|
||
|
|
||
|
if (is_allowed() === FALSE)
|
||
|
{
|
||
|
exit;
|
||
|
}
|
||
|
|
||
|
// User configured settings
|
||
|
$this->config->load('uploader_settings', TRUE);
|
||
|
}
|
||
|
|
||
|
/* Language set */
|
||
|
|
||
|
private function _lang_set($lang)
|
||
|
{
|
||
|
// We accept any language set as lang_id in **_dlg.js
|
||
|
// Therefore an error will occur if language file doesn't exist
|
||
|
|
||
|
$this->config->set_item('language', $lang);
|
||
|
$this->lang->load('jbstrings', $lang);
|
||
|
}
|
||
|
|
||
|
/* Default upload routine */
|
||
|
|
||
|
public function upload ($lang='en')
|
||
|
{
|
||
|
// Set language
|
||
|
$this->_lang_set($lang);
|
||
|
|
||
|
// Get configuartion data (we fill up 2 arrays - $config and $conf)
|
||
|
|
||
|
$conf['img_path'] = $this->config->item('img_path', 'uploader_settings');
|
||
|
$conf['allow_resize'] = $this->config->item('allow_resize', 'uploader_settings');
|
||
|
|
||
|
$config['allowed_types'] = $this->config->item('allowed_types', 'uploader_settings');
|
||
|
$config['max_size'] = $this->config->item('max_size', 'uploader_settings');
|
||
|
$config['encrypt_name'] = $this->config->item('encrypt_name', 'uploader_settings');
|
||
|
$config['overwrite'] = $this->config->item('overwrite', 'uploader_settings');
|
||
|
$config['upload_path'] = $this->config->item('upload_path', 'uploader_settings');
|
||
|
|
||
|
if (!$conf['allow_resize'])
|
||
|
{
|
||
|
$config['max_width'] = $this->config->item('max_width', 'uploader_settings');
|
||
|
$config['max_height'] = $this->config->item('max_height', 'uploader_settings');
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$conf['max_width'] = $this->config->item('max_width', 'uploader_settings');
|
||
|
$conf['max_height'] = $this->config->item('max_height', 'uploader_settings');
|
||
|
|
||
|
if ($conf['max_width'] == 0 and $conf['max_height'] == 0)
|
||
|
{
|
||
|
$conf['allow_resize'] = FALSE;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Load uploader
|
||
|
$this->load->library('upload', $config);
|
||
|
|
||
|
if ($this->upload->do_upload()) // Success
|
||
|
{
|
||
|
// General result data
|
||
|
$result = $this->upload->data();
|
||
|
|
||
|
// Shall we resize an image?
|
||
|
if ($conf['allow_resize'] and $conf['max_width'] > 0 and $conf['max_height'] > 0 and (($result['image_width'] > $conf['max_width']) or ($result['image_height'] > $conf['max_height'])))
|
||
|
{
|
||
|
// Resizing parameters
|
||
|
$resizeParams = array
|
||
|
(
|
||
|
'source_image' => $result['full_path'],
|
||
|
'new_image' => $result['full_path'],
|
||
|
'width' => $conf['max_width'],
|
||
|
'height' => $conf['max_height']
|
||
|
);
|
||
|
|
||
|
// Load resize library
|
||
|
$this->load->library('image_lib', $resizeParams);
|
||
|
|
||
|
// Do resize
|
||
|
$this->image_lib->resize();
|
||
|
}
|
||
|
|
||
|
// Add our stuff
|
||
|
$result['result'] = "file_uploaded";
|
||
|
$result['resultcode'] = 'ok';
|
||
|
$result['file_name'] = $conf['img_path'] . '/' . $result['file_name'];
|
||
|
|
||
|
// $this->FileModel->addBlogImageToDatabase();
|
||
|
var_dump($result);
|
||
|
|
||
|
|
||
|
// Output to user
|
||
|
$this->load->view('ajax_upload_result', $result);
|
||
|
}
|
||
|
else // Failure
|
||
|
{
|
||
|
// Compile data for output
|
||
|
$result['result'] = $this->upload->display_errors(' ', ' ');
|
||
|
$result['resultcode'] = 'failed';
|
||
|
|
||
|
// Output to user
|
||
|
$this->load->view('ajax_upload_result', $result);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* Blank Page (default source for iframe) */
|
||
|
|
||
|
public function blank($lang='en')
|
||
|
{
|
||
|
$this->_lang_set($lang);
|
||
|
$this->load->view('blank');
|
||
|
}
|
||
|
|
||
|
public function index($lang='en')
|
||
|
{
|
||
|
$this->blank($lang);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* End of file uploader.php */
|
||
|
/* Location: ./application/controllers/uploader.php */
|