2018-03-04 17:23:35 +00:00
|
|
|
<?php
|
2018-05-07 13:40:15 +00:00
|
|
|
/**
|
|
|
|
* @file stroage.php
|
|
|
|
* @date 2018-05-05
|
|
|
|
* @author Go Namhyeon <gnh1201@gmail.com>
|
|
|
|
* @brief Stroage module
|
|
|
|
*/
|
|
|
|
|
|
|
|
if(function_exists("get_storage_dir")) {
|
|
|
|
function get_storage_dir() {
|
|
|
|
$config = get_config();
|
|
|
|
return get_value_in_array("storage_dir", $config, "storage");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if(!function_exists("get_storage_path")) {
|
2018-05-07 14:14:02 +00:00
|
|
|
function get_storage_path($type="data") {
|
2018-05-07 13:40:15 +00:00
|
|
|
return sprintf("./%s/%s", get_storage_dir(), $type);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if(!function_exists("get_storage_url")) {
|
2018-05-07 14:14:02 +00:00
|
|
|
function get_storage_url($type="data") {
|
2018-05-07 13:40:15 +00:00
|
|
|
return sprintf("%s%s/%s", base_url(), get_storage_dir(), $type);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if(!function_exists("move_uploaded_file_to_storage")) {
|
2018-05-07 14:09:52 +00:00
|
|
|
function move_uploaded_file_to_stroage($options=array()) {
|
2018-05-07 14:14:02 +00:00
|
|
|
$files = array();
|
2018-05-07 14:09:52 +00:00
|
|
|
$requests = get_requests();
|
2018-05-07 13:40:15 +00:00
|
|
|
|
2018-05-07 14:09:52 +00:00
|
|
|
$storage_type = get_value_in_array("storage_type", $options, "data");
|
|
|
|
$upload_base_dir = get_storage_path($storage_type);
|
|
|
|
$upload_base_url = get_storage_url($storage_type);
|
2018-05-07 13:40:15 +00:00
|
|
|
|
2018-05-07 14:09:52 +00:00
|
|
|
if(!array_key_empty("only_image", $options)) {
|
|
|
|
$upload_allow_ext = array(
|
|
|
|
"png", "gif", "jpg", "jpeg", "tif"
|
|
|
|
);
|
|
|
|
} elseif(!array_key_empty("only_docs", $options)) {
|
|
|
|
$upload_allow_ext = array(
|
|
|
|
"png", "gif", "jpg", "jpeg", "tif",
|
|
|
|
"xls", "ppt", "doc", "xlsx", "pptx",
|
|
|
|
"docx", "odt", "odp", "ods", "xlsm",
|
|
|
|
"tiff", "pdf", "xlsm"
|
|
|
|
);
|
|
|
|
} elseif(!array_key_empty("only_audio", $options)) {
|
|
|
|
$upload_allow_ext = array(
|
|
|
|
"mp3", "ogg", "m4a", "wma", "wav"
|
|
|
|
);
|
2018-05-07 13:40:15 +00:00
|
|
|
} else {
|
|
|
|
$upload_allow_ext = array();
|
|
|
|
}
|
|
|
|
|
2018-05-07 14:14:02 +00:00
|
|
|
foreach($files as $k=>$file) {
|
|
|
|
$upload_ext = pathinfo($files[$k]['name'], PATHINFO_EXTENSION);
|
2018-05-07 14:09:52 +00:00
|
|
|
$upload_name = make_random_id(32) . (empty($upload_ext) ? "" : "." . $upload_ext);
|
2018-05-07 13:40:15 +00:00
|
|
|
$upload_file = $upload_base_dir . $upload_name;
|
|
|
|
$upload_url = $upload_base_url . $upload_name;
|
|
|
|
|
|
|
|
if(count($upload_allow_ext) == 0 || in_array($upload_ext, $upload_allow_ext)) {
|
2018-05-07 14:14:02 +00:00
|
|
|
if(move_uploaded_file($files[$k]['tmp_name'], $upload_file)) {
|
2018-05-07 13:40:15 +00:00
|
|
|
$response['files'][] = array(
|
2018-05-07 14:09:52 +00:00
|
|
|
"storage_type" => $storage_type
|
2018-05-07 13:40:15 +00:00
|
|
|
"upload_ext" => $upload_ext,
|
|
|
|
"upload_name" => $upload_name,
|
|
|
|
"upload_file" => $upload_file,
|
|
|
|
"upload_url" => $upload_url,
|
|
|
|
"upload_error" => ""
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
$response['files'][] = array(
|
|
|
|
"upload_error" => "File write error."
|
|
|
|
);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$response['files'][] = array(
|
|
|
|
"upload_error" => "Not allowed file type."
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
return $response['files'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-05-07 14:09:52 +00:00
|
|
|
if(!function_exists("read_storage_file")) {
|
|
|
|
function read_storage_file($filename, $options=array()) {
|
2018-05-07 14:10:29 +00:00
|
|
|
$fcontents = "";
|
2018-05-07 14:09:52 +00:00
|
|
|
$storage_type = get_value_in_array("storage_type", $options, "data");
|
2018-05-07 13:40:15 +00:00
|
|
|
|
2018-05-07 14:09:52 +00:00
|
|
|
$upload_base_dir = get_storage_path($storage_type);
|
|
|
|
$upload_base_url = get_storage_url($storage_type);
|
|
|
|
|
|
|
|
if($fhandle = fopen($filename, "r")) {
|
|
|
|
$fcontents = fread($fhandle, filesize($filename));
|
2018-05-07 14:10:29 +00:00
|
|
|
fclose($fhandle);
|
2018-05-07 14:09:52 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if(!array_key_empty("encode_base64", $options)) {
|
|
|
|
$fcontents = base64_encode($file_contents);
|
|
|
|
}
|
|
|
|
|
|
|
|
return $fcontents;
|
|
|
|
}
|
2018-03-04 17:23:35 +00:00
|
|
|
}
|