You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
153 lines
6.0 KiB
153 lines
6.0 KiB
<?php
|
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
|
/**************************************************************************************
|
|
*
|
|
* Class Upload
|
|
*
|
|
* 업로드 관련 컨트롤러
|
|
*
|
|
* @author Jang Seongeun <songwritersg@nexvation.com>
|
|
* @date 2016.11.07
|
|
*************************************************************************************/
|
|
class Editor extends WB_Controller
|
|
{
|
|
function __construct()
|
|
{
|
|
parent::__construct();
|
|
$this->load->library('upload');
|
|
$this->theme = FALSE;
|
|
}
|
|
|
|
public function smarteditor($ed_nonce='')
|
|
{
|
|
make_dir(DIR_UPLOAD . DIRECTORY_SEPARATOR . "editor");
|
|
|
|
$upload_path = DIR_UPLOAD . '/editor/' . date('Y') . '/' . date('m') . '/';
|
|
|
|
if (isset($_FILES)
|
|
&& isset($_FILES['files'])
|
|
&& isset($_FILES['files']['name'])
|
|
&& isset($_FILES['files']['name'][0])) {
|
|
|
|
$uploadconfig = array(
|
|
'upload_path' => "./" . $upload_path,
|
|
'allowed_types' => 'jpg|jpeg|png|gif',
|
|
'max_size' => 10 * 1024,
|
|
'encrypt_name' => true,
|
|
);
|
|
|
|
$this->upload->initialize($uploadconfig);
|
|
$upload = isset($_FILES['files']) ? $_FILES['files'] : null;
|
|
if( is_array( $upload['tmp_name'] ) ){
|
|
$_FILES['userfile']['name'] = $upload['name'][0];
|
|
$_FILES['userfile']['type'] = $upload['type'][0];
|
|
$_FILES['userfile']['tmp_name'] = $upload['tmp_name'][0];
|
|
$_FILES['userfile']['error'] = $upload['error'][0];
|
|
$_FILES['userfile']['size'] = $upload['size'][0];
|
|
} else {
|
|
if($upload['type'] == "application/octet-stream"){
|
|
$imageMime = getimagesize($upload['tmp_name']); // get temporary file REAL info
|
|
$upload['type'] = $imageMime['mime']; //set in our array the correct mime
|
|
}
|
|
$_FILES['userfile']['name'] = $upload['name'];
|
|
$_FILES['userfile']['type'] = $upload['type'];
|
|
$_FILES['userfile']['tmp_name'] = $upload['tmp_name'];
|
|
$_FILES['userfile']['error'] = $upload['error'];
|
|
$_FILES['userfile']['size'] = $upload['size'];
|
|
}
|
|
|
|
if ($this->upload->do_upload()) {
|
|
|
|
$filedata = $this->upload->data();
|
|
$image_url = base_url(DIR_UPLOAD . '/editor/' . date('Y') . '/' . date('m') . '/' . element('file_name', $filedata));
|
|
$info = new stdClass();
|
|
$info->oriname = element('orig_name', $filedata);
|
|
$info->name = element('file_name', $filedata);
|
|
$info->size = intval(element('file_size', $filedata) * 1024);
|
|
$info->type = 'image/' . str_replace('.', '', element('file_ext', $filedata));
|
|
$info->url = $image_url;
|
|
$info->width = element('image_width', $filedata) ? element('image_width', $filedata) : 0;
|
|
$info->height = element('image_height', $filedata) ? element('image_height', $filedata) : 0;
|
|
|
|
$return['files'][0] = $info;
|
|
|
|
exit(json_encode($return));
|
|
|
|
} else {
|
|
exit($this->upload->display_errors());
|
|
}
|
|
} elseif ($this->input->get('file')) {
|
|
unlink($upload_path . $this->input->get('file'));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* CK 에디터를 통해 이미지를 업로드하는 컨트롤러입니다.
|
|
*/
|
|
public function ckeditor($type="")
|
|
{
|
|
make_dir(DIR_UPLOAD . DIRECTORY_SEPARATOR . "editor");
|
|
|
|
$upload_path = DIR_UPLOAD . '/editor/' . date('Y') . '/' . date('m') . '/';
|
|
|
|
$uploadconfig = array(
|
|
'upload_path' => "./". $upload_path,
|
|
'allowed_types' => 'jpg|jpeg|png|gif',
|
|
'max_size' => 10 * 1024,
|
|
'encrypt_name' => true,
|
|
);
|
|
|
|
$CKEditorFuncNum = (int)$this->input->get('CKEditorFuncNum', null, 0);
|
|
|
|
if (isset($_FILES)
|
|
&& isset($_FILES['upload'])
|
|
&& isset($_FILES['upload']['name'])) {
|
|
|
|
$this->upload->initialize($uploadconfig);
|
|
$_FILES['userfile']['name'] = $_FILES['upload']['name'];
|
|
$_FILES['userfile']['type'] = $_FILES['upload']['type'];
|
|
$_FILES['userfile']['tmp_name'] = $_FILES['upload']['tmp_name'];
|
|
$_FILES['userfile']['error'] = $_FILES['upload']['error'];
|
|
$_FILES['userfile']['size'] = $_FILES['upload']['size'];
|
|
|
|
if ($this->upload->do_upload()) {
|
|
|
|
$filedata = $this->upload->data();
|
|
$image_url = base_url(DIR_UPLOAD . '/editor/' . date('Y') . '/' . date('m') . '/' . element('file_name', $filedata));
|
|
|
|
if(empty($type))
|
|
{
|
|
exit ("<script>window.parent.CKEDITOR.tools.callFunction({$CKEditorFuncNum}, '{$image_url}', '업로드완료');</script>");
|
|
}
|
|
else if (strtolower($type) == 'json')
|
|
{
|
|
$return = array(
|
|
"fileName" => $_FILES['upload']['name'],
|
|
"uploaded" => 1,
|
|
"url" => $image_url
|
|
);
|
|
exit(json_encode($return, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES));
|
|
}
|
|
|
|
} else {
|
|
if(empty($type)) {
|
|
echo $this->upload->display_errors();
|
|
}
|
|
else if (strtolower($type) == 'json')
|
|
{
|
|
$return = array(
|
|
"fileName" => $_FILES['upload']['name'],
|
|
"uploaded" => 0,
|
|
"url" => "",
|
|
"error" => array(
|
|
"number" => 201,
|
|
"message" => $this->upload->display_errors(' ',' ')
|
|
)
|
|
);
|
|
exit(json_encode($return, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|