no message
parent
6f86f35ed3
commit
3b81befb6b
27
ChangeLog.md
27
ChangeLog.md
|
@ -1,3 +1,30 @@
|
|||
### ver4.33 `2018/08/28`
|
||||
-----
|
||||
#### update:
|
||||
- 选中内容,支持拖拽到左侧树目录:我的文档,公共网盘,收藏的文件夹,部门文档;
|
||||
- 文件夹内内容项太多的情况下速度优化:自适应排序算法,移动端图片懒加载优化;
|
||||
- 重命名同名文件大小写检测优化;
|
||||
- 移动端分享支持;
|
||||
- 样式细节优化;
|
||||
- 上传超大文件性能优化处理;
|
||||
- Hook调用加入死循环判断检测及提示;
|
||||
- 文件夹上传或拖拽文件夹上传,超过1500个文件时提示压缩上传;
|
||||
- 插件优化
|
||||
- 移动端分享等页面出现播放器的问题;
|
||||
- 压缩文件打开,展示文件夹尺寸大小;
|
||||
- office编辑保存接口处理;
|
||||
|
||||
#### fix bug
|
||||
- 带密码分享视频播放问题处理;;
|
||||
- 中文搜索问题优化;
|
||||
- 新建用户中文编码处理;
|
||||
- 文件上传、复制粘贴、剪切粘贴、加压缩等操作使用存储空间大小更新;
|
||||
- 选择拖拽松开后,打开其他文件,锁打开的内容对应不一致问题处理;
|
||||
- 360等浏览器下载文件夹异常处理;
|
||||
- 上传过程中服务器没有响应,客户端报错处理;上传提示优化处理,上传成功误判处理;
|
||||
|
||||
|
||||
|
||||
### ver4.32 `2018/07/10`
|
||||
-----
|
||||
#### update:
|
||||
|
|
|
@ -502,7 +502,7 @@ class explorer extends Controller{
|
|||
);
|
||||
|
||||
//编辑器简化树目录
|
||||
if($app == 'editor'){
|
||||
if($app == 'editor' || defined("KODFILE")){
|
||||
unset($treeData['myGroup']);
|
||||
unset($treeData['group']);
|
||||
unset($treeData['public']);
|
||||
|
@ -511,7 +511,7 @@ class explorer extends Controller{
|
|||
$listWeb = $this->_path(_DIR(WEB_ROOT),$checkFile,true);
|
||||
$web = array_merge($listWeb['folderList'],$listWeb['fileList']);
|
||||
$treeData['webroot'] = array(
|
||||
'name' => "webroot",
|
||||
'name' => get_path_this(WEB_ROOT),
|
||||
'menuType' => "menu-tree-root",
|
||||
'ext' => "folder",
|
||||
'children' => $web,
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1396,12 +1396,25 @@ function upload_chunk($uploadFile,$tempPath,$savePath){
|
|||
$tempFilePre = $tempPath.md5($savePath).'.part';
|
||||
if(kod_move_uploaded_file($uploadFile, $tempFilePre.$chunk)){
|
||||
$done = true;
|
||||
for($index = 0; $index<$chunks; $index++ ){
|
||||
|
||||
//优化分片存在判断;当分片太多时,每个分片都全量判断,会占用服务器资源及影响上传速度;
|
||||
$fromIndex = 0;
|
||||
$existMaxFile = $tempFilePre.'.max';//记录连续存在文件的最大序号
|
||||
if(file_exists($existMaxFile)){
|
||||
$fromIndex = intval(file_get_contents($fromIndex));
|
||||
}else{
|
||||
file_put_contents($existMaxFile,$fromIndex);
|
||||
}
|
||||
for($index = $fromIndex; $index<$chunks; $index++ ){
|
||||
if (!file_exists($tempFilePre.$index)) {
|
||||
if($index-1 > $fromIndex){
|
||||
file_put_contents($existMaxFile,$index-1);
|
||||
}
|
||||
$done = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$done){
|
||||
show_json('upload_success',true);
|
||||
}else{
|
||||
|
@ -1430,6 +1443,7 @@ function upload_chunk($uploadFile,$tempPath,$savePath){
|
|||
fclose($out);
|
||||
}
|
||||
}
|
||||
unlink($existMaxFile);
|
||||
$res = rename($savePathTemp,$savePath);
|
||||
if( isset($in['size']) && filesize($savePath) != $in['size'] ){
|
||||
unlink($savePath);
|
||||
|
|
|
@ -263,23 +263,24 @@ function init_common(){
|
|||
$errorTips = "[Error Code:1002] 目录权限错误!请设置程序目录及所有子目录为读写状态,
|
||||
linux 运行如下指令:
|
||||
<pre>su -c 'setenforce 0'\nchmod -R 777 ".BASIC_PATH.'</pre>';
|
||||
//检查session是否存在
|
||||
if( !file_exists(KOD_SESSION) ||
|
||||
!file_exists(KOD_SESSION.'index.html')){
|
||||
mk_dir(KOD_SESSION);
|
||||
touch(KOD_SESSION.'index.html');
|
||||
if(!file_exists(KOD_SESSION.'index.html') ){
|
||||
if( !defined('SESSION_PATH_DEFAULT') ){
|
||||
//检查session是否存在
|
||||
if( !file_exists(KOD_SESSION) ||
|
||||
!file_exists(KOD_SESSION.'index.html')){
|
||||
mk_dir(KOD_SESSION);
|
||||
touch(KOD_SESSION.'index.html');
|
||||
if(!file_exists(KOD_SESSION.'index.html') ){
|
||||
show_tips($errorTips);
|
||||
}
|
||||
}
|
||||
//检查目录权限
|
||||
if( !is_writable(KOD_SESSION) ||
|
||||
!is_writable(KOD_SESSION.'index.html') ||
|
||||
!is_writable(DATA_PATH.'system/apps.php') ||
|
||||
!is_writable(DATA_PATH)){
|
||||
show_tips($errorTips);
|
||||
}
|
||||
}
|
||||
|
||||
//检查目录权限
|
||||
if( !is_writable(KOD_SESSION) ||
|
||||
!is_writable(KOD_SESSION.'index.html') ||
|
||||
!is_writable(DATA_PATH.'system/apps.php') ||
|
||||
!is_writable(DATA_PATH)){
|
||||
show_tips($errorTips);
|
||||
}
|
||||
|
||||
//version check update
|
||||
$file = LIB_DIR.'update.php';
|
||||
|
|
|
@ -13,11 +13,11 @@ define('PCLTAR_TEMPORARY_DIR',TEMP_PATH);
|
|||
define('PCLZIP_SEPARATOR',';@@@,');//压缩多个文件,组成字符串分割
|
||||
mk_dir(TEMP_PATH);
|
||||
|
||||
require ARCHIVE_LIB.'pclerror.lib.php';
|
||||
require ARCHIVE_LIB.'pcltrace.lib.php';
|
||||
require ARCHIVE_LIB.'pcltar.lib.php';
|
||||
require ARCHIVE_LIB.'pclzip.class.php';
|
||||
require ARCHIVE_LIB.'kodRarArchive.class.php';
|
||||
require_once ARCHIVE_LIB.'pclerror.lib.php';
|
||||
require_once ARCHIVE_LIB.'pcltrace.lib.php';
|
||||
require_once ARCHIVE_LIB.'pcltar.lib.php';
|
||||
require_once ARCHIVE_LIB.'pclzip.class.php';
|
||||
require_once ARCHIVE_LIB.'kodRarArchive.class.php';
|
||||
|
||||
|
||||
class KodArchive {
|
||||
|
@ -165,7 +165,7 @@ class KodArchive {
|
|||
}
|
||||
//TrDisplay();exit;
|
||||
return array('code'=>$result,'data'=>PclErrorString(true));
|
||||
}else if( self::checkIfType($ext,'rar') ){
|
||||
}else if( self::checkIfType($ext,'rar')){ // || $ext == 'zip'
|
||||
return kodRarArchive::extract($file,$dest,$ext,$partName);
|
||||
}else{
|
||||
$zip = new PclZip($file);
|
||||
|
|
|
@ -1818,7 +1818,7 @@ if (!defined("PCL_TAR"))
|
|||
$v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12", $v_typeflag, $v_linkname, $v_magic, $v_version, $v_uname, $v_gname, $v_devmajor, $v_devminor, $v_prefix, "");
|
||||
|
||||
|
||||
var_dump($v_reduce_filename, $v_perms, $v_uid, $v_gid, $v_prefix,111);
|
||||
//var_dump($v_reduce_filename, $v_perms, $v_uid, $v_gid, $v_prefix,111);
|
||||
|
||||
// ----- Calculate the checksum
|
||||
$v_checksum = 0;
|
||||
|
|
|
@ -535,7 +535,7 @@ return array(
|
|||
"file_type" => "Tipo de archivo",
|
||||
"goto" => "saltar a",
|
||||
"server_dwonload_desc" => "La tarea fue añadido a la lista de descargas",
|
||||
"parent_permission" => "permisos de directorio de padres",
|
||||
"parent_permission" => "permisos de directorio padre",
|
||||
"root_path" => "Mis documentos",
|
||||
"lib" => "almacén",
|
||||
"fav" => "marcador",
|
||||
|
@ -554,12 +554,12 @@ return array(
|
|||
"adminer" => "adminer",
|
||||
"ui_project_home" => "Inicio del proyecto",
|
||||
"ui_login" => "iniciar la sesión",
|
||||
"ui_logout" => "dejar",
|
||||
"ui_logout" => "cerrar sessión",
|
||||
"setting" => "Configuración del sistema",
|
||||
"setting_title" => "opciones",
|
||||
"setting_user" => "Centro de personal",
|
||||
"setting_password" => "Cambiar contraseña",
|
||||
"setting_password_old" => "Contrsñ",
|
||||
"setting_password_old" => "Contrseña",
|
||||
"setting_password_new" => "Se ha revisado para",
|
||||
"setting_language" => "Configuración de idioma",
|
||||
"setting_member" => "Gestión de usuarios",
|
||||
|
@ -575,7 +575,7 @@ return array(
|
|||
"setting_wall_diy" => "fondo de pantalla personalizado:",
|
||||
"setting_wall_info" => "Imagen de direcciones URL, imágenes locales puede ser adecuado para obtener el navegador para ampliar imagen",
|
||||
"setting_fav" => "Administrador de marcadores",
|
||||
"setting_help" => "Uso de la Ayuda",
|
||||
"setting_help" => "Ayuda",
|
||||
"setting_about" => "Acerca de las obras",
|
||||
"setting_success" => "La modificación ha entrado en vigor!",
|
||||
"can_not_repeat" => "No se permite repetir",
|
||||
|
@ -591,7 +591,7 @@ return array(
|
|||
"group_already_remove" => "El grupo de usuarios ha sido borrada",
|
||||
"group_not_exists" => "Este grupo de usuario no existe",
|
||||
"member_add" => "Agregar usuario",
|
||||
"password_null_not_update" => "Ellos dijeron que no cambian la contraseña está vacío",
|
||||
"password_null_not_update" => "Dejar en blanco para no modificar la contraseña",
|
||||
"if_save_file_tips" => "Algunos archivos no se guardan. ¿Estás seguro de cerrar la ventana?",
|
||||
"if_save_file" => "El archivo no se ha guardado, que desea guardar?",
|
||||
"if_remove" => "confirmar eliminación",
|
||||
|
@ -648,10 +648,10 @@ return array(
|
|||
"current_has_parent" => "carpeta de destino es una subcarpeta de la carpeta de origen!",
|
||||
"past_success" => "<b>operación de pegado se completa</b>",
|
||||
"cute_past_success" => "<b>operación de corte se completa</b>(se borra el archivo de origen, el portapapeles vacío)",
|
||||
"zip_success" => "compresión completado",
|
||||
"zip_success" => "compresión completada",
|
||||
"not_zip" => "no archivo",
|
||||
"zip_null" => "No archivo o directorio seleccionado",
|
||||
"unzip_success" => "descomprimir completa",
|
||||
"unzip_success" => "descompresion completa",
|
||||
"gotoline" => "Salta a la línea de",
|
||||
"path_is_current" => "La ruta y la ruta actual para abrir el mismo!",
|
||||
"path_exists" => "El nombre ya existe!",
|
||||
|
@ -755,7 +755,7 @@ return array(
|
|||
"PluginHasUpdate" => "actualizaciones",
|
||||
"PluginUpdateStart" => "Actualización de plug-in",
|
||||
"PluginNeedConfig" => "La necesidad de permitir que la configuración inicial",
|
||||
"PluginConfigNotNull" => "Los campos obligatorios no puede estar vacía!",
|
||||
"PluginConfigNotNull" => "Los campos obligatorios no pueden estar vacíos!",
|
||||
"PluginOpen" => "abierto",
|
||||
"PluginAuther" => "autor",
|
||||
"PluginVersion" => "edición",
|
||||
|
@ -771,7 +771,7 @@ return array(
|
|||
"Plugin.config.authAll" => "titular",
|
||||
"Plugin.config.authUser" => "usuario",
|
||||
"Plugin.config.authGroup" => "Departamento designado",
|
||||
"Plugin.config.authRole" => "El grupo de derechos",
|
||||
"Plugin.config.authRole" => "Derechos de los grupos",
|
||||
"Plugin.Config.openWith" => "estilo abierto",
|
||||
"Plugin.Config.openWithDilog" => "diálogo interno",
|
||||
"Plugin.Config.openWithWindow" => "La nueva página se abre",
|
||||
|
@ -783,10 +783,10 @@ return array(
|
|||
"Plugin.tab.auth" => "permisos",
|
||||
"Plugin.tab.others" => "otros ajustes",
|
||||
"Plugin.default.aceEditor" => "Editor Ace",
|
||||
"Plugin.default.htmlView" => "Previa de páginas Web",
|
||||
"Plugin.default.htmlView" => "Vista previa de páginas Web",
|
||||
"Plugin.default.picasa" => "Picasa ojeada del cuadro",
|
||||
"Plugin.default.zipView" => "Archive Preview",
|
||||
"Plugin.default.jPlayer" => "El jugador jPlayer",
|
||||
"Plugin.default.zipView" => "Previsualizar archivo",
|
||||
"Plugin.default.jPlayer" => "Reproductor jPlayer",
|
||||
"Plugin.auth.viewList" => "Lista de complementos",
|
||||
"Plugin.auth.setting" => "Configuración del complemento",
|
||||
"Plugin.auth.status" => "Apagar",
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -49,14 +49,14 @@ define(function(require, exports) {
|
|||
treeNode.iconSkin = treeNode.tree_icon;
|
||||
|
||||
$("#" + treeNode.tId + "_span").addClass('name');
|
||||
var tree_icon = treeNode.tree_icon;
|
||||
var treeIcon = treeNode.tree_icon;
|
||||
if(treeNode.ext){
|
||||
tree_icon = treeNode.ext;
|
||||
treeIcon = treeNode.ext;
|
||||
}else if(!treeNode.tree_icon){
|
||||
tree_icon = treeNode.type;
|
||||
treeIcon = treeNode.type;
|
||||
}
|
||||
icoObj.before(switchObj)
|
||||
.before('<span id="'+treeNode.tId +'_my_ico" class="tree_icon button">'+core.iconSmall(tree_icon)+'</span>')
|
||||
.before('<span id="'+treeNode.tId +'_my_ico" class="tree_icon button">'+core.iconSmall(treeIcon)+'</span>')
|
||||
.remove();
|
||||
|
||||
if(treeNode.ext!=undefined){//如果是文件则用自定义图标
|
||||
|
@ -68,10 +68,13 @@ define(function(require, exports) {
|
|||
+ (spaceWidth * treeNode.level)+ "px'></span>";
|
||||
switchObj.before(spaceStr);
|
||||
}
|
||||
|
||||
|
||||
var size = pathTools.fileSize(treeNode.size);
|
||||
if(treeIcon == 'folder'){
|
||||
//size = ' - ';
|
||||
size = pathInfoData(treeNode).sizeFriendly;
|
||||
}
|
||||
var info = '<span class="time">'+date(LNG.time_type,treeNode.mtime)+'</span>';
|
||||
info += '<span class="size">'+pathTools.fileSize(treeNode.size)+'</span>';
|
||||
info += '<span class="size">'+size+'</span>';
|
||||
info += '<span class="menu-item-parent icon-ellipsis-vertical"></span>';
|
||||
$("#" + treeNode.tId + "_span").after(info);
|
||||
|
||||
|
@ -311,6 +314,13 @@ define(function(require, exports) {
|
|||
folderSizeCell.size += parseInt(node.size);
|
||||
}
|
||||
}
|
||||
var archiveSize = function(data){
|
||||
var totalSize = 0;
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
totalSize += parseInt(data[i].size);
|
||||
}
|
||||
return totalSize;
|
||||
}
|
||||
|
||||
var zipFileDownload = function(tree,node){
|
||||
var filePath = tree.setting.filePath;
|
||||
|
@ -503,6 +513,7 @@ define(function(require, exports) {
|
|||
type:'folder',
|
||||
path:'',
|
||||
index:'-1',
|
||||
size:archiveSize(data),
|
||||
menuType:'menu-zip-list-folder'
|
||||
}
|
||||
$.fn.zTree.init($("#"+treeID),setting,treeData);
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,5 +1,5 @@
|
|||
/* power by kodexplorer ver 4.33(2018-08-22) [build 1534947933.6436] */
|
||||
/* power by kodexplorer ver 4.33(2018-08-28) [build 1535448969.8954] */
|
||||
@import url('./fileIcon.css');
|
||||
@import url('./common.css');
|
||||
.frame-main{position:absolute;top:40px;width:100%;bottom:0px;}.frame-main .tools-left{background:#f8f8f8 url("../../../images/common/bg.gif") 0 0px;position:fixed;line-height:30px;padding-left:20px;height:28px;border-bottom:1px solid #ddd;left:0;width:100%;}.frame-main .tools-left a{font-size:1.25em;font-weight:800;text-decoration:none;color:#999;text-shadow:0 0 3px;display:inline-block;padding:2px 6px;margin-top:0;height:20px;line-height:20px;}.frame-main .tools-left a:hover{background:url("../../../images/common/buttons_40.png") 0 0px repeat-x;-webkit-box-shadow:0 2px 8px rgba(0,0,0,0.8);-moz-box-shadow:0 2px 8px rgba(0,0,0,0.8);box-shadow:0 2px 8px rgba(0,0,0,0.8);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}.frame-main .frame-left{position:absolute;left:0;top:30px;bottom:0;width:200px;background:#fff;background-attachment:fixed;overflow:auto;}.frame-main .frame-left .ztree{margin-top:0;}.frame-main .frame-left .ztree li.level0{margin-bottom:5px;}.frame-main .frame-resize{width:10px;cursor:col-resize;z-index:100;position:absolute;left:195px;top:0;bottom:0;overflow:hidden;background:url("../../../images/common/resize.png") 0px 50% no-repeat;}.frame-main .frame-resize.active{background:#000;opacity:0.2;filter:alpha(opacity=20);}.frame-main .frame-right{left:200px;right:0;position:absolute;top:0;bottom:0;overflow:auto;}.frame-main .frame-right .frame-right-main .resize-mask{z-index:999;position:absolute;left:0;top:0;bottom:0;right:0;display:none;}.frame-main .frame-right .frame-right-main .frame{height:100%;border-left:1px solid #ddd;overflow:hidden;}
|
||||
/* ver 4.33(2018-08-22) [build 1534947933.6436] */
|
||||
/* ver 4.33(2018-08-28) [build 1535448969.8954] */
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -565,7 +565,6 @@ body{overflow-x: hidden;}
|
|||
}
|
||||
|
||||
|
||||
.frame-main{position: absolute;left: 0;width:100%;bottom:0;top:0px;}
|
||||
.menu-open .panel-menu{left:0;}
|
||||
.frame-main .panel-mask{
|
||||
z-index: 50;display:none;
|
||||
|
|
Loading…
Reference in New Issue