提交 4f3b51fb 编写于 作者: 青阳龙野's avatar 青阳龙野

update to v1.0.17-RELEASE

上级 da16c0e8
......@@ -34,7 +34,7 @@ _注:kift为该功能的开发名称,其实际成果命名为kiftd。_
## kiftd有哪些优势?
![mark](https://github.com/KOHGYLW/kiftd-showPicture/blob/master/mark_icon.png?raw=true) 无上传限制——1MB的文档和超过4GB的高清电影资源?均能够随意上传和下载。
![mark](https://github.com/KOHGYLW/kiftd-showPicture/blob/master/mark_icon.png?raw=true) 主流商业网盘特有的高级功能甚至需要收费的功能——文件夹访问权限控制、MP4视频在线影院、MP3音乐在线欣赏、图片文件在线预览、Word & PDF文档在线阅读...kiftd均一一具备,每一份kiftd均是“完全版”。
![mark](https://github.com/KOHGYLW/kiftd-showPicture/blob/master/mark_icon.png?raw=true) 主流商业网盘特有的高级功能甚至需要收费的功能——文件夹访问权限控制、多格式视频在线影院、音乐在线欣赏、图片文件在线预览、Word & PDF & TXT文档在线阅读...kiftd均一一具备,每一份kiftd均是“完全版”。
![mark](https://github.com/KOHGYLW/kiftd-showPicture/blob/master/mark_icon.png?raw=true) 操作系统全兼容——无论是Windows、Linux还是Unix(包括Mac OS X),均可运行使用。
......@@ -76,12 +76,19 @@ _注:kift为该功能的开发名称,其实际成果命名为kiftd。_
> 提示:当您更新版本后,请手动清除浏览器的缓存,之后刷新网盘主页以确保数据文件保持最新!否则可能导致新版页面功能无法使用。
### 新版本v1.0.16
_本次更新增加了提高可用性的新功能,同时修复了一些已知问题,推荐所有用户升级。_
+ TXT文档在线预览——众多用户期待已久的TXT文档在线预览功能正式上线。
+ 修正“移动”权限可能导致的越权问题——当用户具备“移动”权限时,可能会恶意移动同名文件并覆盖原文件,从而导致原文件丢失。为避免该漏洞导致的越权现象,现已将其修复为:当用户“粘贴”同名文件时,如仅具备“上传”权限,则能选择“跳过”和“保留两者”;如同时具备“删除”权限,可额外选择“覆盖”,从而避免您的文件丢失。
+ 修正“移动”权限无法被授予全局权限的问题——现在,“移动”也可以被正确设定为全局权限了。
+ 新增MySQL数据库接入时区设置“mysql.timezone”,以解决用户连接MySQL时时区不一致的问题。该问题可能会导致无法接入MySQL,详情请见说明文档中的相关介绍。
### 新版本v1.0.17
_本次更新加入了众多用户们一直期待的、较为实用的新功能,同时修复了一些已知问题,进一步增强kiftd的使用体验。推荐所有用户升级。_
+ 增强在线视频播放——现在,kiftd内置了功能强大的ffmpeg开源多媒体解码引擎。得益于此,所有:mp4、mov、wmv、flv、mkv、webm和avi格式的视频均支持在线播放了。
+ 全路径搜索——现在,用户除了能够像之前一样直接在本级文件夹内搜索外,还可以通过输入“all:关键字”的方式进行全路径搜索。对于文件数目较多且目录层次较深的用户而言,该功能能够令查找文件变得更加轻松。
+ 可以分享的“下载链接”——现在,文件的下载链接将动态生成。使用生成的链接进行下载时,可以直接下载指定资源(而无需像之前一样必须登入账户或具备下载权限了)。这样一来,用户便能够将下载链接分享至他人以供下载。
+ 自定义主界面缩放比例——对于使用高分辨率显示器的用户而言,可以通过自行调整主界面的缩放比例来找到最适合自己操作的显示效果,具体调整方法详见随程序附带的《kiftd说明文档》。
+ 优化文件列表显示效果——当文件名称过长时会自动换行,避免在窄屏幕上浏览时可能导致的文件列表溢出问题。
+ 新增了“返回顶部”按钮——当用户浏览得过于“深入”底部(超过2倍屏幕长度)时,该按钮能够将其快速带回页面顶部。
+ 升级文件和文件夹的命名规则——文件和文件夹的名称不能以“.”开头,且不能包含下列任何字符之一:空格 / \ : * ? " < > | & $ (对于空格,推荐使用“_”代替)。该改进能够令用户更加自由地使用各种语言和字符来命名文件和文件夹。
+ 修正了搜索框无法输入大写字母的BUG。
+ 优化了在线播放器页面在移动端的表现效果。
+ 修复了“打包下载”时,若存在文件夹可能导致文件夹结构压缩不正确的问题。
+ 其他一些细节优化和问题修复的改进。
> 需要查看更多版本历史信息?请访问: https://kohgylw.gitee.io/News.html
......
文件已添加
......@@ -77,4 +77,26 @@ body {
height: 100%;
margin-top: 15px;
overflow: hidden;
}
\ No newline at end of file
}
.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: 0.7;
opacity: 0.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}
\ No newline at end of file
@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}
\ No newline at end of file
......@@ -6,7 +6,8 @@
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<meta name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>KIFT</title>
<!-- Bootstrap基本框架 -->
<link rel="stylesheet" href="css/bootstrap.min.css">
......@@ -382,7 +383,8 @@
全部应用
</p>
<p>
<button id="uploadcoverbtn" type="button" class="btn btn-danger btn-sm"
<button id="uploadcoverbtn" type="button"
class="btn btn-danger btn-sm"
onclick="selectFileUpLoadModelEnd('cover')">覆盖</button>
<button type="button" class="btn btn-default btn-sm"
onclick="selectFileUpLoadModelEnd('skip')">跳过</button>
......@@ -446,7 +448,7 @@
</h4>
</div>
<div class="modal-body">
<h5 id="deleteFileMessage"></h5>
<h5 id="deleteFileMessage" class="wordbreak"></h5>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
......@@ -591,7 +593,8 @@
全部应用
</p>
<p>
<button id="movecoverbtn" type="button" class="btn btn-danger btn-sm"
<button id="movecoverbtn" type="button"
class="btn btn-danger btn-sm"
onclick="selectFileMoveModel('cover')">覆盖</button>
<button type="button" class="btn btn-default btn-sm"
onclick="selectFileMoveModel('skip')">跳过</button>
......@@ -639,6 +642,13 @@
</div>
</div>
<!-- end 文件夹详情模态框 -->
<!-- 返回顶部按钮(隐藏式) -->
<div id="gobacktotopbox" class="gobacktopbox text-center hidden">
<button type="button" onclick="goBackToTop()" class="gobacktopbutton">
返回顶部 <span class="glyphicon glyphicon-eject" aria-hidden="true"></span>
</button>
</div>
<!-- end 返回顶部按钮 -->
</body>
<!-- jquery基本框架 -->
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
......
此差异已折叠。
此差异已折叠。
/**
* Kplayer播放器内置功能
*/
var tReq;
var tTimer;
$(function() {
window.onresize = function(){
showCloseBtn();
}
var fileId = getFileId();
$
.ajax({
url : 'homeController/playVideo.ajax',
type : 'POST',
dataType : 'text',
data : {
fileId : fileId
},
success : function(result) {
if (result != "ERROR") {
f = eval("(" + result + ")");
$("#vname").text(f.fileName);
$("#vcreator").text(f.fileCreator);
$("#vcdate").text(f.fileCreationDate);
$("#vsize").text(f.fileSize);
if (f.needEncode == "N") {
playVideo();
} else {
$("#playerMassage")
.html(
"<h2>播放器正在努力解码中...</h2><h3>已完成:<span id='transcodeProgress'>0</span>%</h3><p class='text-muted'>提示:该视频需解码后播放,请耐心等待!</p>");
doTranscode();
}
} else {
alert("错误:无法定位要预览的文件或该操作未被授权。");
reMainPage();
}
},
error : function() {
alert("错误:请求失败,请刷新重试。");
reMainPage();
}
});
});
// 获取URL上的视频id参数,它必须是第一个参数。
function getFileId() {
var url = location.search;
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("=");
return strs[1];
}
return "";
}
// 显示视屏信息并播放视频
function playVideo() {
$("#playerbox")
.html(
"<video id='kiftplayer' class='video-js col-md-12' controls preload='auto' height='500'>"
+ "<source src='resourceController/getResource.do?fid="
+ f.fileId + "' type='video/mp4'></video>");
var player = videojs('kiftplayer');
player.ready(function() {
this.play();
});
}
// 关闭当前窗口并释放播放器
function reMainPage() {
if(tReq != null){
tReq.abort()
}
if(tTimer != null){
window.clearTimeout(tTimer);
}
window.opener = null;
window.open('', '_self');
window.close();
}
// 进行转码请求并监听进度状态(轮询)
function doTranscode() {
tReq=$.ajax({
url : 'resourceController/getVideoTranscodeStatus.ajax',
type : 'POST',
dataType : 'text',
data : {
fileId : f.fileId
},
success : function(result) {
if (result == "FIN") {
playVideo();
} else if (result == "ERROR") {
alert("错误:请求失败,请刷新重试。");
reMainPage();
} else {
$("#transcodeProgress").text(result);
tTimer=setTimeout('doTranscode()', 500);// 每隔1秒询问一次进度
}
},
error : function() {
alert("错误:请求失败,请刷新重试。");
reMainPage();
}
});
}
function showCloseBtn(){
var win = $(window).width();
if(win < 450){
$("#closeBtn").addClass("hidden");
}else{
$("#closeBtn").removeClass("hidden");
}
}
\ No newline at end of file
function getFileId(){var b,a=location.search;return-1!=a.indexOf("?")?(b=a.substr(1),strs=b.split("="),strs[1]):""}function playVideo(){$("#playerbox").html("<video id='kiftplayer' class='video-js col-md-12' controls preload='auto' height='500'><source src='resourceController/getResource.do?fid="+f.fileId+"' type='video/mp4'></video>");var a=videojs("kiftplayer");a.ready(function(){this.play()})}function reMainPage(){null!=tReq&&tReq.abort(),null!=tTimer&&window.clearTimeout(tTimer),window.opener=null,window.open("","_self"),window.close()}function doTranscode(){tReq=$.ajax({url:"resourceController/getVideoTranscodeStatus.ajax",type:"POST",dataType:"text",data:{fileId:f.fileId},success:function(a){"FIN"==a?playVideo():"ERROR"==a?(alert("错误:请求失败,请刷新重试。"),reMainPage()):($("#transcodeProgress").text(a),tTimer=setTimeout("doTranscode()",500))},error:function(){alert("错误:请求失败,请刷新重试。"),reMainPage()}})}function showCloseBtn(){var a=$(window).width();450>a?$("#closeBtn").addClass("hidden"):$("#closeBtn").removeClass("hidden")}var tReq,tTimer;$(function(){window.onresize=function(){showCloseBtn()};var fileId=getFileId();$.ajax({url:"homeController/playVideo.ajax",type:"POST",dataType:"text",data:{fileId:fileId},success:function(result){"ERROR"!=result?(f=eval("("+result+")"),$("#vname").text(f.fileName),$("#vcreator").text(f.fileCreator),$("#vcdate").text(f.fileCreationDate),$("#vsize").text(f.fileSize),"N"==f.needEncode?playVideo():($("#playerMassage").html("<h2>播放器正在努力解码中...</h2><h3>已完成:<span id='transcodeProgress'>0</span>%</h3><p class='text-muted'>提示:该视频需解码后播放,请耐心等待!</p>"),doTranscode())):(alert("错误:无法定位要预览的文件或该操作未被授权。"),reMainPage())},error:function(){alert("错误:请求失败,请刷新重试。"),reMainPage()}})});
\ No newline at end of file
......@@ -16,6 +16,26 @@
<script src="js/html5shiv.min.js"></script>
<script src="js/respond.min.js"></script>
<![endif]-->
<style type="text/css">
@media only screen and (max-width: 992px) {
#kiftplayer {
width: 100%;
height: 400px;
}
}
@media only screen and (max-width: 768px) {
#kiftplayer {
height: 300px;
}
}
@media only screen and (max-width: 488px) {
#kiftplayer {
height: 230px;
}
}
</style>
</head>
<body>
......@@ -26,7 +46,8 @@
<div class="titlebox">
<span class="titletext"><em> 青阳网络视频播放器 <small><span
class="graytext">KIFT-Player</span></small></em></span>
<button class="btn btn-link rightbtn" onclick="reMainPage()">
<button id="closeBtn" class="btn btn-link rightbtn"
onclick="reMainPage()">
关闭 <span class="glyphicon glyphicon-share-alt" aria-hidden="true"></span>
</button>
</div>
......@@ -46,7 +67,12 @@
<br />
<!-- 播放窗口组件位置 -->
<div id="playerbox" class="col-md-12">
<p>加载中...</p>
<div class="text-center">
<img alt="loading..." src="css/loading.gif">
</div>
<div class="text-center" id="playerMassage">
<h2>加载中...</h2>
</div>
</div>
</div>
</div>
......@@ -57,62 +83,5 @@
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/video.min.js"></script>
<script type="text/javascript">
$(function() {
var fileId = getFileId();
$.ajax({
url : 'homeController/playVideo.ajax',
type : 'POST',
dataType : 'text',
data : {
fileId : fileId
},
success : function(result) {
if (result != "ERROR") {
var f = eval("(" + result + ")");
playVideo(f);
} else {
alert("错误:无法定位要预览的文件或该操作未被授权。");
reMainPage();
}
},
error : function() {
alert("错误:请求失败,请刷新重试。");
reMainPage();
}
});
});
//获取URL上的图片id参数,它必须是第一个参数。
function getFileId() {
var url = location.search;
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("=");
return strs[1];
}
return "";
}
//显示视屏信息并播放视频
function playVideo(f) {
$("#vname").text(f.fileName);
$("#vcreator").text(f.fileCreator);
$("#vcdate").text(f.fileCreationDate);
$("#vsize").text(f.fileSize);
$("#playerbox")
.html(
"<video id='kiftplayer' class='video-js col-md-12' controls preload='auto' height='500'>"
+ "<source src='resourceController/getResource.do?fid="+f.fileId+"' type='video/mp4'>"
+ "<source src='resourceController/getResource.do?fid="+f.fileId+"' type='video/webm'>"
+ "</video>");
var player = videojs('kiftplayer');
player.ready(function() {
this.play();
});
}
function reMainPage() {
window.opener = null;
window.open('', '_self');
window.close();
}
</script>
<script type="text/javascript" src="quickview/kplayer.min.js"></script>
</html>
\ No newline at end of file
kiftd 使用许可
Copyright (c) 2018 青阳龙野 <kohgylw@163.com> (phone:159****3814)
Copyright (c) 2019 青阳龙野 <kohgylw@163.com> (phone:159****3814)
使用kiftd软件或查看kiftd源代码代表您接收如下条款:
1,任何组织或个人均能够自由、无偿地获得kiftd软件及其源代码的原版拷贝,并对其进行无限制地进行使用——无论是商业的还是非商业的。
使用、分发或修改kiftd软件及源代码代表您接受如下条款:
1,任何组织或个人均能够自由、无偿地获得kiftd软件及其源代码的原版拷贝,并对其享有无限制使用的权利——无论是商业的还是非商业的。
2,任何组织或个人均能够自由复制、分发或修改kiftd软件及其源代码,并将其运用于任何用途。修改后的作品之版权由修改者所有。
3,kiftd软件之作者无需为使用该软件及其源代码所造成的任何直接或间接后果承担责任。
4,作者“青阳龙野(kohgylw)”对kiftd软件及源代码享有版权并保留其著作权,该软件及其源代码的使用者需承认其原版部分之版权。
5,kiftd软件中所使用的所有第三方软件、工具或插件及其代码,其权利由该资源之作者享有并授予许可。kiftd作者无需为使用这些资源而造成的直接或间接后果承担责任。
\ No newline at end of file
4,作者“青阳龙野 kohgylw(E-mail:kohgylw@163.com)”对kiftd的原版java/网页页面源代码、原版java软件程序和页面资源、随发行版程序附带的原版《kiftd说明文档》均具备版权。
5,kiftd软件中涉及的所有第三方软件、工具或插件及其代码,其权利由该资源之作者享有并授予kiftd许可。kiftd作者无需为使用这些资源而造成的直接或间接后果承担责任。
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册