<?php
use application\ESPCMS_AdminAuthority;
use application\ESPCMS_FileUpload;
use application\ESPCMS_FileTool;
use admin_application\FileDB;
use admin_application\link\SettingLink;
class FileManage {
public function __construct() {
$exclude_method = array('fileManageDialogbox', 'uploadFile', 'photoIndex', 'photoList', 'listFileManage', 'uploadFileSave', 'uploadFileConfig');
ESPCMS_AdminAuthority::authorityAdminVerify($exclude_method);
}
public static function listFileManage() {
global $espcms_admin_templates, $espcms_link_db, $espcms_command;
$db_table = ESPCMS_DB_PREFIX . "file";
$db_table_filedir = ESPCMS_DB_PREFIX . "filedir";
$viewtype = $_REQUEST['viewtype'] ? $_REQUEST['viewtype'] : 'web';
$selectnum = $_REQUEST['selectnum'];
$upfileType = $_REQUEST['upfileType'];
$out_type = $_REQUEST['out_type'];
if ($out_type == 'list') {
$filedir_id = $_GET['filedir_id'];
$db_where_file = $filedir_id && espcms_ismatches($filedir_id) ? " AND filedir_id=$filedir_id" : " AND filedir_id=0";
if ($filedir_id && espcms_ismatches($filedir_id)) {
$dir_read = espcms_db_read_field_array($db_table_filedir, 'WHERE filedir_id=' . $filedir_id, array('filedir_id', 'filedir_lastid', 'filedir_name'));
$espcms_admin_templates->into('dir_read', $dir_read);
}
$db_where_file_dir = $filedir_id ? " AND filedir_lastid=$filedir_id" : " AND filedir_lastid=0";
$db_sql_dir = "SELECT * FROM $db_table_filedir WHERE 1=1 $db_where_file_dir ORDER BY filedir_id DESC";
$db_query_dir = $espcms_link_db->db_query($db_sql_dir);
while ($fetch_row_dir = $espcms_link_db->db_array_list($db_query_dir)) {
$array_dir[] = $fetch_row_dir;
}
$espcms_admin_templates->into('array_dir', $array_dir);
if ($upfileType == 'image') {
$db_where_file .= " AND file_type='image'";
}
$search_keyname_array = array('file_filename', 'file_title', 'file_type');
$search_keyname = $_REQUEST['search_keyname'] && in_array($_REQUEST['search_keyname'], $search_keyname_array) ? $_REQUEST['search_keyname'] : 'file_filename';
$search_key = $_REQUEST['search_key'];
if (isset($search_key) && !empty($search_key)) {
$search_key = urldecode($search_key);
$db_where_file .= " AND $search_keyname LIKE '%$search_key%'";
}
$searchlist = $_GET['searchlist'];
if ($searchlist == 'true') {
exit(espcms_page_db($db_table, $db_where_file, true));
}
$order_key = "file_id";
$sort_rank = $_REQUEST['sort_rank'];
$sort_rank_array = array('ASC', 'DESC');
if (isset($sort_rank) && in_array($sort_rank, $sort_rank_array)) {
$order_rank = $sort_rank;
} else {
$order_rank = "DESC";
}
$db_sql = "SELECT * FROM $db_table WHERE 1=1 $db_where_file ORDER BY $order_key $order_rank";
$db_query = $espcms_link_db->db_query($db_sql);
while ($fetch_row = $espcms_link_db->db_array_list($db_query)) {
$fetch_row['file_name'] = $fetch_row['file_path'] . $fetch_row['file_filename'];
$fetch_row['file_url'] = ESPCMS_URL_RT . $fetch_row['file_path'] . $fetch_row['file_filename'];
$fetch_row['view'] = ESPCMS_URL . $fetch_row['file_path'] . $fetch_row['file_filename'];
$array[] = $fetch_row;
}
$espcms_admin_templates->into('array', $array);
$tempaltes_file = $_GET['fileListType'] == 'listfile' ? 'admin/filemanage_list_file' : 'admin/filemanage_list';
} else {
$upfileType = 'file';
$espcms_admin_templates->into('upfileType', $upfileType);
$upfile_ext = $espcms_command['UPFILE_FILE_OTHER_TYPE'];
$espcms_admin_templates->into('upfile_ext', $upfile_ext);
$php_upload_max_filesize = ini_get('file_uploads') ? intval(ini_get('upload_max_filesize')) : 2;
$espcms_admin_templates->into('php_upload_max_filesize', $php_upload_max_filesize);
$net_upload_max_filesize = intval($espcms_command['UPFILE_SIZE']);
$espcms_admin_templates->into('net_upload_max_filesize', $net_upload_max_filesize);
$chunksize = $php_upload_max_filesize > 5 ? 5 * 1024 * 1024 : $php_upload_max_filesize * 1024 * 1024;
$espcms_admin_templates->into('chunksize', $chunksize);
$upload_max_filesize_byte = $net_upload_max_filesize * 1024 * 1024;
$espcms_admin_templates->into('upload_max_filesize_byte', $upload_max_filesize_byte);
$espcms_admin_templates->into('selectnum', isset($selectnum) && espcms_ismatches($selectnum) ? intval($selectnum) : 30);
$espcms_admin_templates->into('link', SettingLink::myfile_link_array(false, $_REQUEST));
$espcms_admin_templates->into('upfileave', SettingLink::FileManage_link_array('save'));
$tempaltes_file = $viewtype == 'dialog' ? 'filemanage/fileManage_dirlist_index' : 'admin/filemanage_index';
}
$espcms_admin_templates->output($tempaltes_file);
}
public static function addFileDir() {
global $espcms_admin_templates;
$filedir_id = $_GET['filedir_id'] && espcms_ismatches($_GET['filedir_id']) ? $_GET['filedir_id'] : 0;
$espcms_admin_templates->into('link', SettingLink::myfile_link_array());
$espcms_admin_templates->into('token', token());
$espcms_admin_templates->into('filedir_id', $filedir_id);
$espcms_admin_templates->output('admin/filemanage_filedir_add');
}
public static function editFileDir() {
global $espcms_admin_templates;
$filedir_id = $_GET['filedir_id'];
if (!$filedir_id || !espcms_ismatches($filedir_id)) {
espcms_message_err('public_pack-espcms_input_parameter_fail', array($filedir_id));
}
$db_table = ESPCMS_DB_PREFIX . "filedir";
$db_where = " WHERE filedir_id=$filedir_id";
$talbe_field_array = espcms_field_out($db_table, false);
$read = espcms_db_read($db_table, $db_where, $talbe_field_array);
if (!$read) {
espcms_message_err('db_pack-espcms_db_read_fail', array($db_where));
}
$espcms_admin_templates->into('read', $read);
$espcms_admin_templates->into('link', SettingLink::myfile_link_array());
$espcms_admin_templates->into('token', token());
$espcms_admin_templates->into('filedir_id', $filedir_id);
$espcms_admin_templates->output('admin/filemanage_filedir_edit');
}
public static function importFile() {
global $espcms_admin_templates, $espcms_command;
$filedir_id = $_GET['filedir_id'] && espcms_ismatches($_GET['filedir_id']) ? $_GET['filedir_id'] : 0;
if ($_GET['filedir_id'] && espcms_ismatches($_GET['filedir_id'])) {
$dir_read = FileDB::getFileDir($_GET['filedir_id']);
$espcms_admin_templates->into('dir_read', $dir_read);
}
$upfile_dir = $espcms_command['UPFILE_SAVAPATH'] ? $espcms_command['UPFILE_SAVAPATH'] : 'upfile/';
$filePath = ESPCMS_FILE_ROOT . $upfile_dir;
if ($dir_read['filedir_path']) {
$filePath = ESPCMS_FILE_ROOT . $upfile_dir . $dir_read['filedir_path'];
} else {
$dir_array = ESPCMS_FileTool::list_dir($filePath);
if ($dir_array && is_array($dir_array)) {
$dir_select_array = array();
foreach ($dir_array as $key => $value) {
$dir_select_array[$key]['title'] = str_replace($filePath, '', $value) . '/';
}
$espcms_admin_templates->into('dir_array', $dir_select_array);
}
}
$espcms_admin_templates->into('link', SettingLink::myfile_link_array());
$espcms_admin_templates->into('token', token());
$espcms_admin_templates->into('filedir_id', $filedir_id);
$espcms_admin_templates->output('admin/filemanage_filedir_import');
}
public static function checkFile() {
global $espcms_command;
$upfile_dir = $espcms_command['UPFILE_SAVAPATH'] ? $espcms_command['UPFILE_SAVAPATH'] : 'upfile/';
$filePath = ESPCMS_FILE_ROOT . $upfile_dir;
$db_where_dir = "AND filedir_isdir=1";
$db_table_dir = ESPCMS_DB_PREFIX . 'filedir';
$dir_array = espcms_db_list_array($db_table_dir, 'filedir_id,filedir_isdir,filedir_path,filedir_dirname', $db_where_dir, "filedir_id DESC");
if (is_array($dir_array) && count($dir_array) > 0) {
foreach ($dir_array as $key => $dir_read) {
$dir_path = $filePath . $dir_read['filedir_path'];
if (is_dir($dir_path) || !$dir_read['filedir_path']) {
continue;
}
espcms_db_del($db_table_dir, 'filedir_id', $dir_read['filedir_id']);
}
}
$db_table_file = ESPCMS_DB_PREFIX . 'file';
$file_array = espcms_db_list_array($db_table_file, 'file_id,file_filename,file_path,file_type', '', "file_id DESC");
if (is_array($file_array) && count($file_array) > 0) {
foreach ($file_array as $key => $file_read) {
$file_path = ESPCMS_FILE_ROOT . $file_read['file_path'] . $file_read['file_filename'];
if (is_file($file_path) || !$file_read['file_path']) {
continue;
}
espcms_db_del($db_table_file, 'file_id', $file_read['file_id']);
}
}
espcms_log_install('filemanage_pack-espcms_filenamage_file_check_title');
espcms_public_dialog('espcms_info_save_ok', 'filemanage_pack-espcms_filenamage_file_check_ok', 'true');
}
public static function saveFileDir() {
global $espcms_command;
if (!is_token($_POST['token_name'], $_POST['token_key'])) {
espcms_public_dialog('espcms_public_dialog', 'public_pack-espcms_input_repeat_fail', 'false', array($_POST['token_name']));
}
$saveType = $_POST['savetype'] ? $_POST['savetype'] : 'add';
$db_table = ESPCMS_DB_PREFIX . "filedir";
$talbe_field_array = espcms_field_out($db_table, true);
if ($saveType == 'add') {
if (!ESPCMS_AdminAuthority::authorityVerify('addFileDir')) {
espcms_public_dialog('espcms_public_dialog', 'public_pack-espcms_authority_function_fail', 'false');
}
if (!espcms_ismatches($_POST['filedir_lastid']) || !$_POST['filedir_name']) {
espcms_public_dialog('espcms_public_dialog', 'public_pack-espcms_input_parameter_fail', 'false');
}
$_POST['filedir_addtime'] = time();
$postvalue = espcms_post($_POST, $talbe_field_array, true);
if (!$postvalue || !is_array($postvalue)) {
espcms_public_dialog('espcms_public_dialog', 'db_pack-espcms_db_install_fail', 'false');
}
$install_id = espcms_db_install_save($db_table, $postvalue);
if (!$install_id) {
espcms_public_dialog('espcms_public_dialog', 'db_pack-espcms_db_install_fail', 'false');
}
espcms_log_install('filemanage_pack-espcms_lable_myfiledir_addfieldir', $_POST['filedir_name']);
espcms_public_dialog('espcms_info_save_ok', 'filemanage_pack-espcms_lable_myfiledir_add_save_ok', 'true', array($_POST['filedir_name']));
} elseif ($saveType == 'edit') {
if (!ESPCMS_AdminAuthority::authorityVerify('editFileDir')) {
espcms_public_dialog('espcms_public_dialog', 'public_pack-espcms_authority_function_fail', 'false');
}
unset($_POST['filedir_lastid']);
$filedir_id = $_POST['filedir_id'];
if (empty($filedir_id) || !espcms_ismatches($filedir_id)) {
espcms_public_dialog('espcms_public_dialog', 'public_pack-espcms_input_parameter_fail', 'false', array($filedir_id));
}
$db_where = "WHERE filedir_id=$filedir_id";
$read = espcms_db_read($db_table, $db_where, $talbe_field_array);
if (!$read) {
espcms_public_dialog('espcms_public_dialog', 'public_pack-espcms_input_parameter_fail', 'false', array($filedir_id));
}
$postvalue = espcms_post($_POST, $talbe_field_array, true);
if (!$postvalue || !is_array($postvalue)) {
espcms_public_dialog('espcms_public_dialog', 'db_pack-espcms_db_install_fail', 'false');
}
$update_id = espcms_db_update_save($db_table, $db_where, $postvalue);
if (!$update_id) {
espcms_public_dialog('espcms_public_dialog', 'db_pack-espcms_db_install_fail', 'false');
}
espcms_log_install('filemanage_pack-espcms_lable_myfiledir_editfieldir', $_POST['filedir_name']);
espcms_public_dialog('espcms_info_save_ok', 'filemanage_pack-espcms_lable_myfiledir_edit_save_ok', 'true', array($_POST['filedir_name']));
} elseif ($saveType == 'import') {
if (!ESPCMS_AdminAuthority::authorityVerify('importFile')) {
espcms_public_dialog('espcms_public_dialog', 'public_pack-espcms_authority_function_fail', 'false');
}
$assign_filedir_id = $_POST['filedir_id'];
if (!espcms_ismatches($assign_filedir_id)) {
espcms_public_dialog('espcms_public_dialog', 'public_pack-espcms_input_parameter_fail', 'false', array($assign_filedir_id));
}
$list_path = $_POST['dirpath'] && espcms_isact($_POST['dirpath'], "/^[\w\/\-]+$/i") && $_POST['isdir'] && espcms_ismatches($_POST['isdir']) ? $_POST['dirpath'] : '';
$upfile_dir = $espcms_command['UPFILE_SAVAPATH'] ? $espcms_command['UPFILE_SAVAPATH'] : 'upfile/';
$filePath = ESPCMS_FILE_ROOT . $upfile_dir . $list_path;
if (!is_dir($filePath)) {
espcms_public_dialog('espcms_public_dialog', 'public_pack-espcms_input_parameter_fail', 'false', array($upfile_dir . $list_path));
}
$path_reg = espcms_isact($_POST['dirpath'], "/^[\w\/\-]+$/i") && !$_POST['isdir'] && !$_POST['dirname'] ? '' : $_POST['dirpath'];
$dir_array = ESPCMS_FileTool::list_dir($filePath);
if (is_array($dir_array)) {
$dir_level_array = array();
foreach ($dir_array as $dir_key => $dir_path) {
$dir_name = str_replace($filePath, $path_reg, $dir_path);
$dir_level = explode('/', $dir_name);
$filedir_lastid = $assign_filedir_id;
if (is_array($dir_level)) {
foreach ($dir_level as $key => $value) {
if (!$value) {
continue;
}
if ($key == 0) {
$filedir_lastid = 0;
}
$filedir_id = FileDB::getSearchDir($value, $filedir_lastid, 'filedir_id');
if (!$filedir_id) {
$filedir_lastid = self::import_fileDirDB($value, $filedir_lastid, $dir_name);
} else {
$filedir_lastid = $filedir_id;
}
}
$dir_level_array[$dir_key]['path'] = $dir_path;
$dir_level_array[$dir_key]['filedir_id'] = $filedir_lastid;
}
}
}
$dir_level_array[] = array('filedir_id' => $assign_filedir_id, 'path' => $filePath);
if (is_array($dir_level_array)) {
foreach ($dir_level_array as $dir_read) {
self::import_fileDB($dir_read['path'], $dir_read['filedir_id']);
}
}
espcms_public_dialog('espcms_info_save_ok', 'filemanage_pack-espcms_lable_file_import_ok', 'true', array($upfile_dir . $list_path));
}
}
private static function import_fileDirDB($filedir_name, $filedir_lastid = 0, $filedir_path = false) {
if (!$filedir_name || !$filedir_path) {
return false;
}
$db_table = ESPCMS_DB_PREFIX . "filedir";
$talbe_field_array = espcms_field_out($db_table, true);
$install_post['filedir_lastid'] = espcms_ismatches($filedir_lastid) ? $filedir_lastid : 0;
$install_post['filedir_name'] = $filedir_name;
$install_post['filedir_path'] = $filedir_path;
$install_post['filedir_dirname'] = $filedir_name;
$install_post['filedir_addtime'] = time();
$install_post['filedir_isdir'] = 1;
$postvalue = espcms_post($install_post, $talbe_field_array, true);
$install_id = espcms_db_install_save($db_table, $postvalue);
if (!$install_id) {
return false;
}
return $install_id;
}
private static function import_fileDB($dir_path = false, $filedir_id = 0) {
global $espcms_command;
if (!$dir_path || !is_dir($dir_path) || !espcms_ismatches($filedir_id)) {
return false;
}
$upfile_dir = $espcms_command['UPFILE_SAVAPATH'] ? $espcms_command['UPFILE_SAVAPATH'] : 'upfile/';
$filePath = ESPCMS_FILE_ROOT . $upfile_dir;
$dir_name = $filePath == $dir_path ? $upfile_dir . str_replace($filePath, '', $dir_path) : $upfile_dir . str_replace($filePath, '', $dir_path) . '/';
$file_array = ESPCMS_FileTool::list_dir($dir_path, array(), 'allfile', false);
if (!is_array($file_array) || !count($file_array)) {
return false;
}
$save_key = 0;
foreach ($file_array as $file_read) {
if (!is_array($file_read) || !$file_read['basename'] || !$file_read['extension']) {
continue;
}
if (!preg_match("/^[\w]+$/i", $file_read['filename'])) {
$file_old = $file_read['filepath'];
$file_new_name = md5($file_read['filename']);
$file_read['basename'] = $file_new_name . '.' . $file_read['extension'];
$file_read['filename'] = $file_new_name;
$file_read['filepath'] = $file_read['dirname'] . '/' . $file_read['basename'];
$file_rename_key = rename($file_old, $file_read['filepath']);
if (!$file_rename_key) {
continue;
}
}
$file_id = FileDB::getSearchFile($file_read['basename'], $dir_name, 'file_id');
if ($file_id) {
continue;
}
$saveFile = array();
$saveFile['filename'] = $file_read['basename'];
$saveFile['upLoadFileName_nopath'] = $file_read['basename'];
$saveFile['extension'] = $file_read['extension'];
$saveFile['upfiletype'] = ESPCMS_FileTool::file_type_screen($file_read['extension']);
$saveFile['path'] = $dir_name;
$saveFile['size'] = filesize($file_read['filepath']);
$saveFile['ctime'] = filectime($file_read['filepath']);
if (FileDB::saveFile($saveFile, $filedir_id)) {
$save_key++;
}
}
return $save_key;
}
public static function moverFile() {
$file_id = $_POST['file_id'];
$filedir_id = $_POST['filedir_id'];
$file_id_array = explode(',', $file_id);
if (!is_array($file_id_array) || count($file_id_array) <= 0 || !$filedir_id || !espcms_ismatches($filedir_id)) {
espcms_public_dialog('info_set_err', 'public_pack-espcms_select_err', 'false');
}
$file_id_list = implode(',', $file_id_array);
$db_where = is_array($file_id_array) && count($file_id_array) > 1 ? " WHERE file_id IN ($file_id_list)" : " WHERE file_id=$file_id_list";
$db_table = ESPCMS_DB_PREFIX . "file";
espcms_db_update_set_save($db_table, $db_where, "filedir_id=$filedir_id");
espcms_log_install('filemanage_pack-espcms_lable_myfiledir_mover2', $filedir_id);
espcms_public_dialog('espcms_info_save_ok', 'filemanage_pack-espcms_lable_myfiledir_mover_ok', 'true', array($filedir_id));
}
public static function delFileDir() {
$filedir_id = $_POST['filedir_id'];
if (!$filedir_id || !espcms_ismatches($filedir_id)) {
espcms_public_dialog('info_set_err', 'public_pack-espcms_input_parameter_fail', 'false', array($filedir_id));
}
self::delFileDirDB($filedir_id);
espcms_log_install('filemanage_pack-espcms_lable_myfiledir_delfieldir', $filedir_id);
espcms_public_dialog('espcms_info_save_ok', 'filemanage_pack-espcms_lable_myfiledir_del_ok2', 'true', array($filedir_id));
}
private static function delFileDirDB($filedir_id = 0) {
if (!$filedir_id || !espcms_ismatches($filedir_id)) {
return false;
}
$filedir_id_array = FileDB::get_filedir_listDB($filedir_id);
if (!is_array($filedir_id_array)) {
return false;
}
$filedir_id_list = implode(',', array_keys($filedir_id_array));
$db_where = is_array($filedir_id_array) && count($filedir_id_array) > 1 ? " filedir_id IN ($filedir_id_list)" : " filedir_id=$filedir_id_list";
$db_table = ESPCMS_DB_PREFIX . "filedir";
$db_table_file = ESPCMS_DB_PREFIX . "file";
$talbe_field_array = espcms_field_out($db_table_file, false);
$array = espcms_db_list_array($db_table_file, $talbe_field_array, " AND " . $db_where, "file_id DESC");
if (is_array($array) || count($array) > 0) {
foreach ($array as $value) {
$filePathName = ESPCMS_FILE_ROOT . $value['file_path'] . $value['file_filename'];
ESPCMS_FileTool::delfile($filePathName);
}
}
$del_query = espcms_db_delall($db_table, $db_where);
return $del_query;
}
public static function delFile() {
$file_id = $_POST['file_id'];
$filelist = $_POST['filelist'];
$file_id_array = explode(',', $file_id);
$file_array = explode(',', $filelist);
if (!is_array($file_id_array) || count($file_id_array) <= 0 || !is_array($file_array)) {
espcms_public_dialog('info_set_err', 'public_pack-espcms_select_err', 'false');
}
$db_table = ESPCMS_DB_PREFIX . "file";
$delcount = 0;
foreach ($file_id_array as $key => $value) {
if (espcms_ismatches($value)) {
$read = espcms_db_read_field_array($db_table, "WHERE file_id=$value", array('file_path', 'file_filename'));
if ($read) {
$filePathName = ESPCMS_FILE_ROOT . $read['file_path'] . $read['file_filename'];
ESPCMS_FileTool::delfile($filePathName);
$del_query = espcms_db_del($db_table, 'file_id', $value);
$delcount++;
}
}
}
espcms_log_install('filemanage_pack-espcms_lable_myfiledir_delfieldir', $filelist);
espcms_public_dialog('espcms_info_save_ok', 'filemanage_pack-espcms_lable_filemanage_del_message', 'true', array($_POST['filelist']));
}
public static function fileManageDialogbox() {
global $espcms_admin_templates;
$digheight = $_GET['digheight'];
if ($digheight > 0) {
$digheight = $digheight - 63;
}
$espcms_admin_templates->into('digheight', $digheight);
$upfileType = $_GET['upfileType'];
$espcms_admin_templates->into('upfileType', $upfileType);
$selectnum = $_GET['selectnum'];
$selectnum = isset($selectnum) && espcms_ismatches($selectnum) ? intval($selectnum) : 1;
$espcms_admin_templates->into('selectnum', $selectnum);
$inputname = $_GET['inputname'];
$espcms_admin_templates->into('inputname', $inputname);
$updatediv = $_GET['updatediv'];
$espcms_admin_templates->into('updatediv', $updatediv);
$displaytype = $_GET['displaytype'];
$displaytype = empty($displaytype) ? 'pic' : $displaytype;
$espcms_admin_templates->into('displaytype', $displaytype);
$dialog_array = array('upfileType' => $upfileType, 'selectnum' => $selectnum, 'iframes_name' => $_GET['iframes_name']);
$espcms_admin_templates->into('upfile', SettingLink::FileManage_link_array('upfile', $dialog_array));
$espcms_admin_templates->into('batupfile', SettingLink::FileManage_link_array('batupfile', $dialog_array));
$espcms_admin_templates->into('photoindex', SettingLink::FileManage_link_array('photoindex', $dialog_array));
$espcms_admin_templates->into('dirindex', SettingLink::FileManage_link_array('dirindex', $dialog_array));
$espcms_admin_templates->into('espcms_url', ESPCMS_URL);
$espcms_admin_templates->into('iframes_name', $_GET['iframes_name']);
$espcms_admin_templates->output('filemanage/fileManage_upfile_dialogbox');
}
public static function uploadFile() {
global $espcms_admin_templates, $espcms_command;
$upfileType = $_GET['upfileType'];
$espcms_admin_templates->into('upfileType', $upfileType);
switch ($upfileType) {
case 'image':
$upfile_ext = $espcms_command['UPFILE_FILE_PIC_TYPE'];
break;
case 'mover':
$upfile_ext = $espcms_command['UPFILE_FILE_MOVER_TYPE'];
break;
case 'file':
$upfile_ext = $espcms_command['UPFILE_FILE_OTHER_TYPE'];
break;
default:
$upfile_ext = $espcms_command['UPFILE_FILE_OTHER_TYPE'];
break;
}
$espcms_admin_templates->into('upfile_ext', $upfile_ext);
$php_upload_max_filesize = ini_get('file_uploads') ? intval(ini_get('upload_max_filesize')) : 2;
$espcms_admin_templates->into('php_upload_max_filesize', $php_upload_max_filesize);
$net_upload_max_filesize = intval($espcms_command['UPFILE_SIZE']);
$espcms_admin_templates->into('net_upload_max_filesize', $net_upload_max_filesize);
$chunksize = $php_upload_max_filesize > 5 ? 5 * 1024 * 1024 : $php_upload_max_filesize * 1024 * 1024;
$espcms_admin_templates->into('chunksize', $chunksize);
$upload_max_filesize_byte = $net_upload_max_filesize * 1024 * 1024;
$espcms_admin_templates->into('upload_max_filesize_byte', $upload_max_filesize_byte);
$upload_content = espcms_lan_pack('filemanage_pack-espcms_filenamage_content_str', array($upfile_ext, $php_upload_max_filesize, $net_upload_max_filesize));
$espcms_admin_templates->into('upload_content', $upload_content);
$selectnum = isset($_GET['selectnum']) && espcms_ismatches($_GET['selectnum']) ? $_GET['selectnum'] : 1;
$espcms_admin_templates->into('selectnum', $selectnum);
$tokenkey = token();
$espcms_admin_templates->into('token', $tokenkey);
$espcms_admin_templates->into('upfileave', SettingLink::FileManage_link_array('save'));
$espcms_admin_templates->into('UPFILE_PIC_ISZOOM', intval($espcms_command['UPFILE_PIC_ISZOOM']));
$espcms_admin_templates->into('UPFILE_ISWATERMARK', intval($espcms_command['UPFILE_ISWATERMARK']));
$user_id = ESPCMS_AdminAuthority::getUserLoginInfo('user_id');
$espcms_admin_templates->into('fileDir', $fileDir);
$windowType = $_GET['windowType'];
$tempaltes_file = $windowType == 'bat' ? 'filemanage/fileManage_batupfile' : 'filemanage/fileManage_upfile';
$espcms_admin_templates->output($tempaltes_file);
}
public static function uploadFileSave() {
global $espcms_command;
$fileName = $_FILES['upfilename']['name'] ? $_FILES['upfilename']['name'] : uniqid("file_");
$fileSize = $_FILES['upfilename']['size'];
$upFileType = empty($_POST['upFileType']) ? 'image' : $_POST['upFileType'];
$isZoom = $_POST['isZoom'] && $upFileType == 'image' ? true : false;
$isWater = $_POST['isWater'] && $upFileType == 'image' ? true : false;
$chunk = isset($_REQUEST["chunk"]) ? intval($_REQUEST["chunk"]) : 0;
$chunks = isset($_REQUEST["chunks"]) ? intval($_REQUEST["chunks"]) : 1;
$filedir_id = $_POST['filedir_id'];
$uploadFileArray = ESPCMS_FileUpload::intoFile($_FILES['upfilename'], $espcms_command, $upFileType, $isZoom, $isWater, false, $chunk, $chunks);
if ($chunks > 1) {
$isFinish = ($chunk + 1) == $chunks ? true : false;
} else {
$isFinish = true;
}
if ($uploadFileArray['returnVal'] && $isFinish) {
$db_table = ESPCMS_DB_PREFIX . "file";
$talbe_field_array = espcms_field_out($db_table, true);
$talbe_value = array();
$admin_member_id = ESPCMS_AdminAuthority::getUserLoginInfo('admin_member_id');
$talbe_value['admin_member_id'] = $admin_member_id && espcms_ismatches($admin_member_id) ? $admin_member_id : 0;
$talbe_value['filedir_id'] = isset($filedir_id) && espcms_ismatches($filedir_id) ? $filedir_id : 0;
$talbe_value['file_title'] = isset($fileName) ? addslashes($fileName) : '';
$talbe_value['file_filename'] = $uploadFileArray['upLoadFileName_nopath'];
$talbe_value['file_ext'] = $uploadFileArray['extension'];
$talbe_value['file_type'] = $uploadFileArray['file_screen'];
$talbe_value['file_path'] = $uploadFileArray['path'];
$talbe_value['file_size'] = isset($uploadFileArray['size']) && espcms_ismatches($uploadFileArray['size']) ? $uploadFileArray['size'] : 0;
$talbe_value['file_iswidth'] = $uploadFileArray['iswidth'];
$talbe_value['file_addtime'] = time();
$talbe_value['file_isclass'] = 1;
$postvalue = espcms_post($talbe_value, $talbe_field_array, true);
if ($postvalue) {
$install_id = espcms_db_install_save($db_table, $postvalue);
}
if ($install_id && $uploadFileArray['zoomFileName'] && $uploadFileArray['zoomFileName_nopath'] && $upFileType == 'image') {
$talbe_value['file_filename'] = $uploadFileArray['zoomFileName_nopath'];
$talbe_value['file_size'] = isset($uploadFileArray['zoomFileSize']) && espcms_ismatches($uploadFileArray['zoomFileSize']) ? $uploadFileArray['zoomFileSize'] : 0;
$postvalue = espcms_post($talbe_value, $talbe_field_array, true);
if ($postvalue) {
espcms_db_install_save($db_table, $postvalue);
}
}
$outJOSN = json_encode($uploadFileArray);
exit($outJOSN);
} else {
$outJOSN = json_encode($uploadFileArray);
exit($outJOSN);
}
}
public static function uploadFileConfig() {
global $espcms_command;
$action = $_GET['action'] ? $_GET['action'] : 'config';
if ($action == 'config') {
$config_array = array();
$config_array['fileURL'] = ESPCMS_URL;
$config_array['fileDialog'] = SettingLink::FileManage_link_array('dialog');
$config_array['picDialog_title'] = espcms_lan_pack('filemanage_pack-espcms_filenamage_images_dialog_title');
$config_array['videoDialog_title'] = espcms_lan_pack('filemanage_pack-espcms_filenamage_video_dialog_title');
$config_array['fileDialog_title'] = espcms_lan_pack('filemanage_pack-espcms_filenamage_file_dialog_title');
$config_array['imageActionName'] = 'uploadimage';
$config_array['imageMaxSize'] = $espcms_command['UPFILE_SIZE'] * 1000 * 1000;
$config_array['imageFieldName'] = 'upfilename';
$config_array['imageCompressEnable'] = 'true';
$config_array['imageCompressBorder'] = '1600';
$config_array['imageisWater'] = $espcms_command['UPFILE_ISWATERMARK'];
$config_array['imageAllowFiles'] = array(".png", ".jpg", ".jpeg", ".gif", ".bmp");
$config_array['imageUrlPrefix'] = '';
$config_array['scrawlActionName'] = 'uploadscrawl';
$config_array['scrawlFieldName'] = 'upfilename';
$config_array['scrawlUrlPrefix'] = '';
$config_array['scrawlMaxSize'] = $espcms_command['UPFILE_SIZE'] * 1000 * 1000;
$config_array['scrawlInsertAlign'] = 'none';
$config_array['snapscreenActionName'] = 'uploadimage';
$config_array['snapscreenUrlPrefix'] = '';
$result = json_encode($config_array);
exit($result);
}
if ($action == 'uploadimage' || $action == 'uploadvideo' || $action == 'uploadfile' || $action == 'uploadscrawl') {
if ($action == 'uploadscrawl') {
$base64Data = $_POST['upfilename'];
$imageData = base64_decode($base64Data);
$uploadFileArray = ESPCMS_FileUpload::intoFile($imageData, $espcms_command, 'image', false, false, true);
} else {
$fileName = $_FILES['upfilename']['name'] ? $_FILES['upfilename']['name'] : $_FILES['upfile']['name'];
$upFileType = empty($_POST['upFileType']) ? 'image' : $_POST['upFileType'];
$isZoom = $_POST['isZoom'] && $upFileType == 'image' ? true : false;
$isWater = $_POST['isWater'] && $upFileType == 'image' ? true : false;
$filedir_id = $_POST['filedir_id'];
$fileArray = $_FILES['upfilename'] ? $_FILES['upfilename'] : $_FILES['upfile'];
$uploadFileArray = ESPCMS_FileUpload::intoFile($fileArray, $espcms_command, $upFileType, $isZoom, $isWater);
}
if ($uploadFileArray['returnVal']) {
$db_table = ESPCMS_DB_PREFIX . "file";
$talbe_field_array = espcms_field_out($db_table, true);
$talbe_value = array();
$user_id = ESPCMS_AdminAuthority::getUserLoginInfo('user_id');
$talbe_value['user_id'] = $user_id && espcms_ismatches($user_id) ? $user_id : 0;
$talbe_value['filedir_id'] = isset($filedir_id) && espcms_ismatches($filedir_id) ? $filedir_id : 0;
$talbe_value['file_title'] = isset($fileName) ? addslashes($fileName) : '';
$talbe_value['file_filename'] = $uploadFileArray['upLoadFileName_nopath'];
$talbe_value['file_ext'] = $uploadFileArray['extension'];
$talbe_value['file_type'] = $uploadFileArray['upfiletype'];
$talbe_value['file_path'] = $uploadFileArray['path'];
$talbe_value['file_size'] = isset($uploadFileArray['size']) && espcms_ismatches($uploadFileArray['size']) ? $uploadFileArray['size'] : 0;
$talbe_value['file_iswidth'] = $uploadFileArray['iswidth'];
$talbe_value['file_addtime'] = time();
$talbe_value['file_isclass'] = 1;
$postvalue = espcms_post($talbe_value, $talbe_field_array, true);
if ($postvalue) {
$install_id = espcms_db_install_save($db_table, $postvalue);
}
if ($install_id && $uploadFileArray['zoomFileName'] && $uploadFileArray['zoomFileName_nopath'] && $upFileType == 'image') {
$talbe_value['file_filename'] = $uploadFileArray['zoomFileName_nopath'];
$talbe_value['file_size'] = isset($uploadFileArray['zoomFileSize']) && espcms_ismatches($uploadFileArray['zoomFileSize']) ? $uploadFileArray['zoomFileSize'] : 0;
$postvalue = espcms_post($talbe_value, $talbe_field_array, true);
if ($postvalue) {
espcms_db_install_save($db_table, $postvalue);
}
}
$outJOSN = json_encode($uploadFileArray);
exit($outJOSN);
} else {
$outJOSN = json_encode($uploadFileArray);
exit($outJOSN);
}
}
}
public static function photoIndex() {
global $espcms_admin_templates;
$espcms_admin_templates->into('photolist', SettingLink::FileManage_link_array('photolist'));
$selectnum = $_GET['selectnum'];
$espcms_admin_templates->into('selectnum', isset($selectnum) && espcms_ismatches($selectnum) ? intval($selectnum) : 1);
$page_db = array();
$page_db['per_page_num'] = 21;
$page_db['sum_db'] = 0;
$page_db['sum_page'] = 1;
$page_db['now_page'] = 0;
$db_where = " AND file_type='image'";
$user_id = ESPCMS_AdminAuthority::getUserLoginInfo('user_id');
if ($user_id && espcms_ismatches($user_id)) {
$db_where .= " AND user_id=$user_id";
}
$db_table = ESPCMS_DB_PREFIX . "file";
$page_db['sum_db'] = espcms_db_num($db_table, $db_where);
if ($page_db['sum_db'] > 0) {
$page_db['sum_page'] = ceil($page_db['sum_db'] / $page_db['per_page_num']);
}
$espcms_admin_templates->into('page_db', $page_db);
$espcms_admin_templates->output('filemanage/fileManage_photo_index');
}
public static function photoList() {
global $espcms_admin_templates, $espcms_link_db;
$db_table = ESPCMS_DB_PREFIX . "file";
$limit = $_REQUEST['limit'] && espcms_ismatches($_REQUEST['limit']) ? $_REQUEST['limit'] : 0;
$per_page_num = 21;
$db_where = " AND file_type='image'";
$user_id = ESPCMS_AdminAuthority::getUserLoginInfo('user_id');
if ($user_id && espcms_ismatches($user_id)) {
$db_where .= " AND user_id=$user_id";
}
$searchlist = $_GET['searchlist'];
if ($searchlist == 'true') {
$page_db = array();
$page_db['per_page_num'] = 21;
$page_db['sum_db'] = 0;
$page_db['sum_page'] = 1;
$page_db['now_page'] = 0;
$page_db['sum_db'] = espcms_db_num($db_table, $db_where);
if ($page_db['sum_db'] > 0) {
$page_db['sum_page'] = ceil($page_db['sum_db'] / $page_db['per_page_num']);
}
exit(json_encode($page_db));
}
$db_sql = "SELECT * FROM $db_table WHERE 1=1 $db_where ORDER BY file_id DESC LIMIT $limit,$per_page_num";
$db_query = $espcms_link_db->db_query($db_sql);
while ($fetch_row = $espcms_link_db->db_array_list($db_query)) {
$fetch_row['file_url'] = ESPCMS_URL_RT . $fetch_row['file_path'] . $fetch_row['file_filename'];
$fetch_row['file_name'] = $fetch_row['file_path'] . $fetch_row['file_filename'];
$fetch_row['view'] = ESPCMS_URL . $fetch_row['file_path'] . $fetch_row['file_filename'];
$array[] = $fetch_row;
}
$espcms_admin_templates->into('array', $array);
$espcms_admin_templates->output('filemanage/fileManage_photo_list');
}
}