no message

pull/297/head
warlee 2018-08-28 19:50:22 +08:00
parent 6f86f35ed3
commit 3b81befb6b
16 changed files with 108 additions and 56 deletions

View File

@ -1,3 +1,30 @@
### ver4.33 `2018/08/28`
-----
#### update:
- 选中内容,支持拖拽到左侧树目录:我的文档,公共网盘,收藏的文件夹,部门文档;
- 文件夹内内容项太多的情况下速度优化:自适应排序算法,移动端图片懒加载优化;
- 重命名同名文件大小写检测优化;
- 移动端分享支持;
- 样式细节优化;
- 上传超大文件性能优化处理;
- Hook调用加入死循环判断检测及提示;
- 文件夹上传或拖拽文件夹上传超过1500个文件时提示压缩上传;
- 插件优化
- 移动端分享等页面出现播放器的问题;
- 压缩文件打开,展示文件夹尺寸大小;
- office编辑保存接口处理;
#### fix bug
- 带密码分享视频播放问题处理;;
- 中文搜索问题优化;
- 新建用户中文编码处理;
- 文件上传、复制粘贴、剪切粘贴、加压缩等操作使用存储空间大小更新;
- 选择拖拽松开后,打开其他文件,锁打开的内容对应不一致问题处理;
- 360等浏览器下载文件夹异常处理;
- 上传过程中服务器没有响应,客户端报错处理;上传提示优化处理,上传成功误判处理;
### ver4.32 `2018/07/10`
-----
#### update:

View File

@ -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

View File

@ -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);

View File

@ -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';

View File

@ -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);

View 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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;