mirror of https://gitee.com/zhang_1334717033/kiftd
parent
d85e9cf8ef
commit
2f261602de
18
README.md
18
README.md
|
|
@ -77,19 +77,11 @@ _注:kift为该功能的开发名称,其实际成果命名为kiftd。_
|
|||
|
||||
> 提示:当您更新版本后,请手动清除浏览器的缓存,之后刷新网盘主页以确保数据文件保持最新!否则可能导致新版页面功能无法使用。
|
||||
|
||||
### 新版本v1.0.17
|
||||
_本次更新加入了众多用户们一直期待的、较为实用的新功能,同时修复了一些已知问题,进一步增强kiftd的使用体验。推荐所有用户升级。_
|
||||
+ 增强在线视频播放——现在,kiftd内置了功能强大的ffmpeg开源多媒体解码引擎。得益于此,所有:mp4、mov、wmv、flv、mkv、webm和avi格式的视频均支持在线播放了。
|
||||
+ 全路径搜索——现在,用户除了能够像之前一样直接在本级文件夹内搜索外,还可以通过输入“all:关键字”的方式进行全路径搜索。对于文件数目较多且目录层次较深的用户而言,该功能能够令查找文件变得更加轻松。
|
||||
+ 可以分享的“下载链接”——现在,文件的下载链接将动态生成。使用生成的链接进行下载时,可以直接下载指定资源(而无需像之前一样必须登入账户或具备下载权限了)。这样一来,用户便能够将下载链接分享至他人以供下载。
|
||||
+ 自定义主界面缩放比例——对于使用高分辨率显示器的用户而言,可以通过自行调整主界面的缩放比例来找到最适合自己操作的显示效果,具体调整方法详见随程序附带的《kiftd说明文档》。
|
||||
+ 优化文件列表显示效果——当文件名称过长时会自动换行,避免在窄屏幕上浏览时可能导致的文件列表溢出问题。
|
||||
+ 新增了“返回顶部”按钮——当用户浏览得过于“深入”底部(超过2倍屏幕长度)时,该按钮能够将其快速带回页面顶部。
|
||||
+ 升级文件和文件夹的命名规则——文件和文件夹的名称不能以“.”开头,且不能包含下列任何字符之一:空格 / \ : * ? " < > | & $ (对于空格,推荐使用“_”代替)。该改进能够令用户更加自由地使用各种语言和字符来命名文件和文件夹。
|
||||
+ 修正了搜索框无法输入大写字母的BUG。
|
||||
+ 优化了在线播放器页面在移动端的表现效果。
|
||||
+ 修复了“打包下载”时,若存在文件夹可能导致文件夹结构压缩不正确的问题。
|
||||
+ 其他一些细节优化和问题修复的改进。
|
||||
### 新版本v1.0.18
|
||||
_本次更新提供更加完善的数据传输保护机制,进一步满足在公共复杂网络环境下的使用需求。推荐所有用户升级体验。_
|
||||
+ 登录验证码机制——当某一账户发生一次及以上的密码输入错误情况后,该账户的后续密码输入尝试均必须经由随机生成的验证码进行验证,直至该账户的密码输入正确。该设计旨在防止账户的密码被暴力破解,以确保在公共网络环境下使用的安全性。
|
||||
+ https访问支持——新版本提供了对https协议的支持。这是目前运用最为广泛、技术最为成熟的数据传输安全解决方案,允许用户使用更加安全的https协议进行访问和操作,确保在公共网络环境下用户和服务器之间的数据传输安全,防止数据被窃取或篡改。开启及设置方法请见《kiftd说明文档》。
|
||||
+ 修复了当文件名称中存在单引号时无法对其进行操作的BUG。
|
||||
|
||||
> 需要查看更多版本历史信息?请访问: https://kohgylw.gitee.io/News.html
|
||||
|
||||
|
|
|
|||
Binary file not shown.
BIN
kiftd说明文档.pdf
BIN
kiftd说明文档.pdf
Binary file not shown.
|
|
@ -100,3 +100,9 @@ td {
|
|||
word-break: break-all;
|
||||
word-wrap: break-all;
|
||||
}
|
||||
|
||||
.vercodeimg {
|
||||
width: 100%;
|
||||
max-height: 35px;
|
||||
cursor: pointer
|
||||
}
|
||||
|
|
@ -1 +1 @@
|
|||
@charset "UTF-8";.titlebox{height:30px;line-height:30px;padding-top:5px;padding-bottom:5px;padding-left:10px;padding-right:10px;position:relative;bottom:-7px}.titletext{color:#000;font-size:22px}.graytext{color:#8b8b8b}.subtitle{color:#5cacee;text-align:center}.rightbtn{border-right:10px;float:right;margin-left:10px}.heading{margin-top:-10px;margin-bottom:-10px}.centerText{text-align:center}.uploadstatusbox{color:#9c9c9c;height:48px;overflow:auto}html{height:100%}body{height:100%}.loading{line-height:56px;color:#545454;padding-left:60px;font-size:15px;background:#fff url(loading.gif) no-repeat 10px 50%;opacity:.7;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;filter:alpha(opacity=70)}.wordbreak{word-break:break-all}.filetableheaderstyle{height:40px;float:left;height:100%;margin-top:15px;overflow:hidden}.gobacktopbox{width:100%;height:30px;position:fixed;top:0;left:0}.gobacktopbutton{width:150px;height:35px;background-color:#fcfcfc;color:#104e8b;alpha(Opacity=70);-moz-opacity:.7;opacity:.7}td{word-break:break-all;word-wrap:break-all}
|
||||
@charset "UTF-8";.titlebox{height:30px;line-height:30px;padding-top:5px;padding-bottom:5px;padding-left:10px;padding-right:10px;position:relative;bottom:-7px}.titletext{color:#000;font-size:22px}.graytext{color:#8b8b8b}.subtitle{color:#5cacee;text-align:center}.rightbtn{border-right:10px;float:right;margin-left:10px}.heading{margin-top:-10px;margin-bottom:-10px}.centerText{text-align:center}.uploadstatusbox{color:#9c9c9c;height:48px;overflow:auto}html{height:100%}body{height:100%}.loading{line-height:56px;color:#545454;padding-left:60px;font-size:15px;background:#fff url(loading.gif) no-repeat 10px 50%;opacity:.7;-moz-border-radius:20px;-webkit-border-radius:20px;border-radius:20px;filter:alpha(opacity=70)}.wordbreak{word-break:break-all}.filetableheaderstyle{height:40px;float:left;height:100%;margin-top:15px;overflow:hidden}.gobacktopbox{width:100%;height:30px;position:fixed;top:0;left:0}.gobacktopbutton{width:150px;height:35px;background-color:#fcfcfc;color:#104e8b;alpha(Opacity=70);-moz-opacity:.7;opacity:.7}td{word-break:break-all;word-wrap:break-all}.vercodeimg{width:100%;max-height:35px;cursor:pointer}
|
||||
|
|
@ -173,6 +173,7 @@
|
|||
placeholder="请输入密码……">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hidden" id="vercodebox"></div>
|
||||
<div id="alertbox" role="alert"></div>
|
||||
</form>
|
||||
</div>
|
||||
|
|
@ -645,7 +646,7 @@
|
|||
<!-- 返回顶部按钮(隐藏式) -->
|
||||
<div id="gobacktotopbox" class="gobacktopbox text-center hidden">
|
||||
<button type="button" onclick="goBackToTop()" class="gobacktopbutton">
|
||||
返回顶部 <span class="glyphicon glyphicon-eject" aria-hidden="true"></span>
|
||||
返回顶部 <span class="glyphicon glyphicon-eject" aria-hidden="true"></span>
|
||||
</button>
|
||||
</div>
|
||||
<!-- end 返回顶部按钮 -->
|
||||
|
|
|
|||
|
|
@ -60,6 +60,14 @@ $(function() {
|
|||
$('#loginModal').on('hidden.bs.modal', function(e) {
|
||||
$("#accountid").val('');
|
||||
$("#accountpwd").val('');
|
||||
$("#accountidbox").removeClass("has-error");
|
||||
$("#accountpwdbox").removeClass("has-error");
|
||||
$("#alertbox").removeClass("alert");
|
||||
$("#alertbox").removeClass("alert-danger");
|
||||
$("#alertbox").text("");
|
||||
$("#vercodebox").html("");
|
||||
$("#vercodebox").removeClass("show");
|
||||
$("#vercodebox").addClass("hidden");
|
||||
});
|
||||
// 各个模态框的打开判定及回车响应功能。该功能仅对“首选”的按钮有效,对其他按钮无效,以避免用户误操作。
|
||||
$('.modal').on('shown.bs.modal', function(e) {
|
||||
|
|
@ -490,18 +498,23 @@ function dologin() {
|
|||
|
||||
// 发送加密文本
|
||||
function sendLoginInfo(encrypted) {
|
||||
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
dataType : "text",
|
||||
url : "homeController/doLogin.ajax",
|
||||
data : {
|
||||
encrypted : encrypted
|
||||
encrypted : encrypted,
|
||||
vercode : $("#vercode").val()
|
||||
},
|
||||
success : function(result) {
|
||||
finishLogin();
|
||||
$("#alertbox").removeClass("alert");
|
||||
$("#alertbox").removeClass("alert-danger");
|
||||
$("#alertbox").text("");
|
||||
$("#vercodebox").html("");
|
||||
$("#vercodebox").removeClass("show");
|
||||
$("#vercodebox").addClass("hidden");
|
||||
switch (result) {
|
||||
case "permitlogin":
|
||||
$("#accountidbox").removeClass("has-error");
|
||||
|
|
@ -523,6 +536,11 @@ function sendLoginInfo(encrypted) {
|
|||
$("#alertbox").addClass("alert-danger");
|
||||
$("#alertbox").text("提示:登录失败,密码错误或未设置");
|
||||
break;
|
||||
case "needsubmitvercode":
|
||||
$("#vercodebox").html("<label id='vercodetitle' class='col-sm-7'><img id='showvercode' class='vercodeimg' alt='点击获取验证码' src='homeController/getNewVerCode.do?s="+(new Date()).getTime()+"' onclick='getNewVerCode()'></label><div class='col-sm-5'><input type='text' class='form-control' id='vercode' placeholder='验证码……'></div>");
|
||||
$("#vercodebox").removeClass("hidden");
|
||||
$("#vercodebox").addClass("show");
|
||||
break;
|
||||
case "error":
|
||||
$("#alertbox").addClass("alert");
|
||||
$("#alertbox").addClass("alert-danger");
|
||||
|
|
@ -544,6 +562,11 @@ function sendLoginInfo(encrypted) {
|
|||
});
|
||||
}
|
||||
|
||||
// 获取一个新的验证码
|
||||
function getNewVerCode(){
|
||||
$("#showvercode").attr("src","homeController/getNewVerCode.do?s="+(new Date()).getTime());
|
||||
}
|
||||
|
||||
// 注销操作
|
||||
function dologout() {
|
||||
$('#logoutModal').modal('hide');
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -11,6 +11,9 @@ $(function() {
|
|||
return false;
|
||||
}
|
||||
});
|
||||
$("#vercodebox").html("");
|
||||
$("#vercodebox").removeClass("show");
|
||||
$("#vercodebox").addClass("hidden");
|
||||
// 打开页面自动聚焦账户输入框
|
||||
$("#accountid").focus();
|
||||
})
|
||||
|
|
@ -61,32 +64,51 @@ function sendLoginInfo(encrypted) {
|
|||
dataType : "text",
|
||||
url : "homeController/doLogin.ajax",
|
||||
data : {
|
||||
encrypted : encrypted
|
||||
encrypted : encrypted,
|
||||
vercode : $("#vercode").val()
|
||||
},
|
||||
success : function(result) {
|
||||
$("#alertbox").removeClass("alert");
|
||||
$("#alertbox").removeClass("alert-danger");
|
||||
$("#alertbox").text("");
|
||||
if (result == "permitlogin") {
|
||||
$("#vercodebox").html("");
|
||||
$("#vercodebox").removeClass("show");
|
||||
$("#vercodebox").addClass("hidden");
|
||||
switch (result) {
|
||||
case "permitlogin":
|
||||
$("#accountidbox").removeClass("has-error");
|
||||
$("#accountpwdbox").removeClass("has-error");
|
||||
window.location.href = "home.html";
|
||||
} else if (result == "accountnotfound") {
|
||||
break;
|
||||
case "accountnotfound":
|
||||
$("#accountidbox").addClass("has-error");
|
||||
$("#accountpwdbox").removeClass("has-error");
|
||||
$("#alertbox").addClass("alert");
|
||||
$("#alertbox").addClass("alert-danger");
|
||||
$("#alertbox").text("提示:登录失败,账户不存在或未设置");
|
||||
} else if (result == "accountpwderror") {
|
||||
break;
|
||||
case "accountpwderror":
|
||||
$("#accountpwdbox").addClass("has-error");
|
||||
$("#accountidbox").removeClass("has-error");
|
||||
$("#alertbox").addClass("alert");
|
||||
$("#alertbox").addClass("alert-danger");
|
||||
$("#alertbox").text("提示:登录失败,密码错误或未设置");
|
||||
} else {
|
||||
break;
|
||||
case "needsubmitvercode":
|
||||
$("#vercodebox").html("<label id='vercodetitle' class='col-sm-6'><img id='showvercode' class='vercodeimg' alt='点击获取验证码' src='homeController/getNewVerCode.do?s="+(new Date()).getTime()+"' onclick='getNewVerCode()'></label><div class='col-sm-6'><input type='text' class='form-control' id='vercode' placeholder='验证码……'></div>");
|
||||
$("#vercodebox").removeClass("hidden");
|
||||
$("#vercodebox").addClass("show");
|
||||
break;
|
||||
case "error":
|
||||
$("#alertbox").addClass("alert");
|
||||
$("#alertbox").addClass("alert-danger");
|
||||
$("#alertbox").text("提示:登录失败,登录请求无法通过效验(可能是请求耗时过长导致的)");
|
||||
break;
|
||||
default:
|
||||
$("#alertbox").addClass("alert");
|
||||
$("#alertbox").addClass("alert-danger");
|
||||
$("#alertbox").text("提示:无法登录,未知错误");
|
||||
break;
|
||||
}
|
||||
},
|
||||
error : function() {
|
||||
|
|
@ -95,4 +117,9 @@ function sendLoginInfo(encrypted) {
|
|||
$("#alertbox").text("提示:登录请求失败,请检查网络或服务器运行状态");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//获取一个新的验证码
|
||||
function getNewVerCode(){
|
||||
$("#showvercode").attr("src","homeController/getNewVerCode.do?s="+(new Date()).getTime());
|
||||
}
|
||||
|
|
@ -5,7 +5,9 @@
|
|||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0;" name="viewport" />
|
||||
<meta
|
||||
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"
|
||||
name="viewport" />
|
||||
<title>KIFT</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/overrall.min.css">
|
||||
|
|
@ -60,9 +62,10 @@
|
|||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="form-group hidden" id="vercodebox"></div>
|
||||
<div id="alertbox" role="alert"></div>
|
||||
<input id="loginBtn" class="form-control btn-success" type="button" value="登录"
|
||||
onclick="dologin()"> <br />
|
||||
<input id="loginBtn" class="form-control btn-success"
|
||||
type="button" value="登录" onclick="dologin()"> <br />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue