提交 04acc9d2 编写于 作者: 青阳龙野's avatar 青阳龙野

重大更新,至版本v1.0.1

上级 30784612
......@@ -13,7 +13,7 @@
本应用的作者 _青阳龙野@kohgylw_ 相信:不仅仅是他本人,而是还有很多人都需要在局域网内自己搭建起一个属于个人或团体的网盘服务器系统,这样就可以让所有在同一局域网内的朋友、同事或学生去访问、上传或下载自己网盘上的文件--无论是不足1MB的doc文本,还是超过4GB的1080p视频。而且这种网盘的安装必须十分简单快速,界面要使用中文,且能够完全兼容Windows/Linux/Unix(包括Mac OS X)系统。
此外,这个网盘还应该主流的免费网盘一样支持Mp4视频直接在线播放、pdf文档直接预览、图片直接查看功能。
此外,这个网盘还应该主流的免费网盘一样支持Mp4视频直接在线播放、pdf文档直接预览、图片直接查看功能。
--实际上,作者最初编写kift的目的就是为了能实现上述功能,毕竟作为老师的他需要时常在班级里分享文件给学生。在他成功弄丢了几次U盘之后,便萌生了利用闲暇时间设计一款这样的应用的想法。
......@@ -27,6 +27,14 @@ _注:kift的解压即用版就叫做kiftd_
* 开源免费,您还在担心隐藏代码偷偷挖矿?kift是完全开源的,您可以很轻松地查看它的源代码,也可以将其拷贝下来自行编译部署。爱护用户平台硬件,从开源做起。此外,它不会产生任何遗留,能够做到轻轻地走就如轻轻地来,卸载时绝对不会和你卖萌。
* 使用方便,kiftd的目标是让最小白的用户也能顺利使用它,并避免国外软件带来的文字障碍。
-------------------
最新讯息:
### kift重大更新:v1.0.1
_这是kift完全具备完整功能的第一个版本,推荐所有用户更新并体验。_
新的内容包括:
+ 新增登录控制功能。现在您终于可以设定用户是直接访问主页还是需要先进入登录页面登录后才可访问主页了。本人经过思考后觉得这项功能对于个人用户而言十分重要,能够为个人用户提供更强的隐私性。感谢之前使用邮件提出此建议的使用者。详见《说明文档》。
+ 新增高效的批量上传、批量下载和批量删除功能。很多kift的用户经常需要大规模地上传、下载文件,现在,kift能够批量上传多个文件,此外也可以对多个文件进行打包下载。当然,还可以将选中的文件一次性删除。详见《说明文档》
+ 更新版本并保留原有文件的方法现已加入《说明文档》,您可以按照上面的指示来进行更新并保留网盘中原有的文件。
-------------------
### 只需抽出3分钟时间,您就可以在您自己的电脑上搭建出一个专业快捷的网盘服务器了。
* 马上下载本网盘服务器?请点击右上方绿色按钮“Clone or Download”,之后选择“Download ZIP”进行下载。
......
无法预览此类型文件
#Generated by Maven Integration for Eclipse
#Sun Mar 11 14:57:13 CST 2018
#Thu Mar 22 15:10:21 CST 2018
version=0.0.1-SNAPSHOT
groupId=kohgylw
m2e.projectName=KohgylwIFT
......
......@@ -17,6 +17,17 @@
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- end VC -->
<!-- 用户身份检查 -->
<filter>
<filter-name>MastLoginFilter</filter-name>
<filter-class>kohgylw.filter.MastLoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MastLoginFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- end 用户身份检查 -->
<!-- spring MVC 配置 -->
......
@charset "UTF-8";
.titlebox{
.titlebox {
height: 30px;
line-height:30px;
line-height: 30px;
padding-top: 5px;
padding-bottom: 5px;
padding-bottom: 5px;
padding-left: 10px;
padding-right: 10px;
position: relative;
bottom: -7px;
}
.titletext{
color:#000000;
.titletext {
color: #000000;
font-size: 22px;
}
.graytext{
color:#8b8b8b;
.graytext {
color: #8b8b8b;
}
.subtitle{
color:#5cacee;
.subtitle {
color: #5cacee;
text-align: center;
}
.rightbtn{
border-right:10px;
.rightbtn {
border-right: 10px;
float: right;
margin-left: 10px;
}
.heading{
height:8px;
.heading {
height: 8px;
}
.centerText{
.centerText {
text-align: center;
}
.uploadstatusbox {
color: #9C9C9C;
font-size: 4px;
height: 48px;
overflow: auto;
}
html {
height: 100%;
}
body {
height: 100%;
}
\ No newline at end of file
......@@ -29,6 +29,14 @@ auth.admin = cudr
#authOverall = none
authOverall = l
#[Login and browse home page]
#This setting means visitor could browse file list if not login
#If you want any visitor must log in to entry the home page,you can set this value is N
#(N = no;O = off)
#Example:
#mustLogin = N
mustLogin = O
#[Set the size of the buffer memory for file download by byte]
#This value depending on your network speed and your memory size
#Example:
......
......@@ -13,7 +13,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>KIFT</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/overrall.min.css">
<link rel="stylesheet" href="css/overrall.css">
<link rel="icon" type="image/x-icon" href="css/icon.png" />
</head>
......@@ -45,15 +45,15 @@
<p class="subtitle">
OS:<span id="serverOS"><span class="graytext">加载中...</span></span>
</p>
<div class="panel panel-default">
<div id="filetable" class="panel panel-default">
<!-- Default panel contents -->
<div class="panel-heading">
<p class="heading" id="parentlistbox"></p>
</div>
<table class="table">
<table class="table table-hover">
<thead>
<tr>
<th>文件名</th>
<th onclick="checkallfile()">文件名</th>
<th>创建日期</th>
<th>大小</th>
<th>创建者</th>
......@@ -235,9 +235,9 @@
</div>
<%-- end 修改文件夹模态框 --%>
<%-- 上传文件模态框 --%>
<div class="modal fade bs-example-modal-sm" id="uploadFileModal"
tabindex="-1" role="dialog" aria-labelledby="uploadFileMolderTitle">
<div class="modal-dialog modal-sm" role="document">
<div class="modal fade" id="uploadFileModal" tabindex="-1"
role="dialog" aria-labelledby="uploadFileMolderTitle">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"
......@@ -249,24 +249,33 @@
</h4>
</div>
<div class="modal-body">
<h5>选择文件:</h5>
<h5>选择文件:<span id="selectcount"></span></h5>
<input type="text" id="filepath" class="form-control"
onclick="checkpath()" onfocus="this.blur()"
placeholder="请点击选择要上传的文件……"> <input type="file"
id="uploadfile" style="display: none;" onchange="showfilepath()">
<br />
<h5>上传进度:</h5>
id="uploadfile" style="display: none;" onchange="showfilepath()"
multiple="multiple"> <br />
<h5>
上传进度:<span id="filecount"></span>
</h5>
<div class="progress">
<div id="pros" class="progress-bar" role="progressbar"
aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"
style="width: 0%;">
<span class="sr-only">0% Complete</span>
<span class="sr-only"></span>
</div>
</div>
<h5>上传状态:</h5>
<div class="panel panel-default">
<div class="panel-body">
<div id="uploadstatus" class="uploadstatusbox"></div>
</div>
</div>
<div id="uploadFileAlert" role="alert"></div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" onclick='abortUpload()'>取消</button>
<button type="button" class="btn btn-default"
onclick='abortUpload()'>取消</button>
<button id="umbutton" type='button' class='btn btn-primary'
onclick='checkUploadFile()'>开始上传</button>
</div>
......@@ -362,5 +371,5 @@
</body>
<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/home.min.js"></script>
<script type="text/javascript" src="js/home.js"></script>
</html>
\ No newline at end of file
此差异已折叠。
/**
* login.jsp
*/
function dologin() {
var accountid = $("#accountid").val();
var accountpwd = $("#accountpwd").val();
var check = "y";
if (accountid.length == 0) {
$("#accountidbox").addClass("has-error");
check = "n"
} else {
$("#accountidbox").removeClass("has-error");
}
if (accountpwd.length == 0) {
$("#accountpwdbox").addClass("has-error");
check = "n"
} else {
$("#accountpwdbox").removeClass("has-error");
}
if (check == "y") {
$.ajax({
type : "POST",
dataType : "text",
url : "homeController/doLogin.ajax",
data : {
accountid : accountid,
accountpwd : accountpwd
},
success : function(result) {
$("#alertbox").removeClass("alert");
$("#alertbox").removeClass("alert-danger");
$("#alertbox").text("");
if (result == "permitlogin") {
$("#accountidbox").removeClass("has-error");
$("#accountpwdbox").removeClass("has-error");
window.location.href = "home.jsp";
} else if (result == "accountnotfound") {
$("#accountidbox").addClass("has-error");
$("#accountpwdbox").removeClass("has-error");
$("#alertbox").addClass("alert");
$("#alertbox").addClass("alert-danger");
$("#alertbox").text("提示:登录失败,账户不存在或未设置");
} else if (result == "accountpwderror") {
$("#accountpwdbox").addClass("has-error");
$("#accountidbox").removeClass("has-error");
$("#alertbox").addClass("alert");
$("#alertbox").addClass("alert-danger");
$("#alertbox").text("提示:登录失败,密码错误或未设置");
} else {
$("#alertbox").addClass("alert");
$("#alertbox").addClass("alert-danger");
$("#alertbox").text("提示:无法登录,未知错误");
}
},
error : function() {
$("#alertbox").addClass("alert");
$("#alertbox").addClass("alert-danger");
$("#alertbox").text("提示:登录请求失败,请检查网络或服务器运行状态");
}
});
}
}
\ No newline at end of file
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!doctype html>
<html>
<head>
<base href="<%=basePath%>">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>KIFT</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/overrall.min.css">
<link rel="icon" type="image/x-icon" href="css/icon.png" />
</head>
<body>
<%-- 中央布局 --%>
<div class="container">
<%-- 头部 --%>
<div class="row">
<div class="col-md-12">
<div class="titlebox">
<span class="titletext"><em> 青阳网络文件传输系统 <small><span
class="graytext">KIFT</span></small></em></span>
</div>
<hr />
</div>
</div>
<%-- end 头部 --%>
<%-- 主体 --%>
<div class="row">
<div class="col-md-4 col-md-offset-4">
<p class="centerText" style="font-size: 30px;color: #4D4D4D">
<strong>欢迎使用青阳网络文件传输系统</strong><em>KIFT</em></p>
<p class="centerText" style="font-size: 18px;color: #9C9C9C">
<span class="glyphicon glyphicon-user"></span> 您需要登录以进入系统</p>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">请登录</h3>
</div>
<div class="panel-body">
<form class="form-horizontal">
<div class="form-group" id="accountidbox">
<label for="accountid" id="accountidtitle"
class="col-sm-3 control-label">账户:</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="accountid"
placeholder="请输入账户……">
</div>
</div>
<div class="form-group" id="accountpwdbox">
<label for="accountpwd" id="accountpwdtitle"
class="col-sm-3 control-label">密码:</label>
<div class="col-sm-9">
<input type="password" class="form-control" id="accountpwd"
placeholder="请输入密码……">
</div>
</div>
<br />
<div id="alertbox" role="alert"></div>
<input class="form-control btn-success" type="button" value="登录"
onclick="dologin()"> <br />
</form>
</div>
</div>
</div>
</div>
<%-- end 主体 --%>
</div>
<%-- end 中央布局 --%>
</body>
<script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/login.js"></script>
</html>
\ No newline at end of file
/*
* Generated by the Jasper component of Apache Tomcat
* Version: Apache Tomcat/9.0.0.M17
* Generated at: 2018-02-23 05:54:41 UTC
* Generated at: 2018-03-22 07:13:38 UTC
* Note: The last modified time of this file was set to
* the last modified time of the source file after
* generation to assist with modification tracking.
......@@ -123,7 +123,7 @@ public final class home_jsp extends org.apache.jasper.runtime.HttpJspBase
out.write("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n");
out.write("<title>KIFT</title>\n");
out.write("<link rel=\"stylesheet\" href=\"css/bootstrap.min.css\">\n");
out.write("<link rel=\"stylesheet\" href=\"css/overrall.min.css\">\n");
out.write("<link rel=\"stylesheet\" href=\"css/overrall.css\">\n");
out.write("<link rel=\"icon\" type=\"image/x-icon\" href=\"css/icon.png\" />\n");
out.write("</head>\n");
out.write("\n");
......@@ -159,15 +159,15 @@ public final class home_jsp extends org.apache.jasper.runtime.HttpJspBase
out.write("\t\t\t\t<p class=\"subtitle\">\n");
out.write("\t\t\t\t\tOS:<span id=\"serverOS\"><span class=\"graytext\">加载中...</span></span>\n");
out.write("\t\t\t\t</p>\n");
out.write("\t\t\t\t<div class=\"panel panel-default\">\n");
out.write("\t\t\t\t<div id=\"filetable\" class=\"panel panel-default\">\n");
out.write("\t\t\t\t\t<!-- Default panel contents -->\n");
out.write("\t\t\t\t\t<div class=\"panel-heading\">\n");
out.write("\t\t\t\t\t\t<p class=\"heading\" id=\"parentlistbox\"></p>\n");
out.write("\t\t\t\t\t</div>\n");
out.write("\t\t\t\t\t<table class=\"table\">\n");
out.write("\t\t\t\t\t<table class=\"table table-hover\">\n");
out.write("\t\t\t\t\t\t<thead>\n");
out.write("\t\t\t\t\t\t\t<tr>\n");
out.write("\t\t\t\t\t\t\t\t<th>文件名</th>\n");
out.write("\t\t\t\t\t\t\t\t<th onclick=\"checkallfile()\">文件名</th>\n");
out.write("\t\t\t\t\t\t\t\t<th>创建日期</th>\n");
out.write("\t\t\t\t\t\t\t\t<th>大小</th>\n");
out.write("\t\t\t\t\t\t\t\t<th>创建者</th>\n");
......@@ -362,9 +362,9 @@ public final class home_jsp extends org.apache.jasper.runtime.HttpJspBase
out.write('\n');
out.write(' ');
out.write("\n");
out.write("\t<div class=\"modal fade bs-example-modal-sm\" id=\"uploadFileModal\"\n");
out.write("\t\ttabindex=\"-1\" role=\"dialog\" aria-labelledby=\"uploadFileMolderTitle\">\n");
out.write("\t\t<div class=\"modal-dialog modal-sm\" role=\"document\">\n");
out.write("\t<div class=\"modal fade\" id=\"uploadFileModal\" tabindex=\"-1\"\n");
out.write("\t\trole=\"dialog\" aria-labelledby=\"uploadFileMolderTitle\">\n");
out.write("\t\t<div class=\"modal-dialog\" role=\"document\">\n");
out.write("\t\t\t<div class=\"modal-content\">\n");
out.write("\t\t\t\t<div class=\"modal-header\">\n");
out.write("\t\t\t\t\t<button type=\"button\" class=\"close\" data-dismiss=\"modal\"\n");
......@@ -376,24 +376,33 @@ public final class home_jsp extends org.apache.jasper.runtime.HttpJspBase
out.write("\t\t\t\t\t</h4>\n");
out.write("\t\t\t\t</div>\n");
out.write("\t\t\t\t<div class=\"modal-body\">\n");
out.write("\t\t\t\t\t<h5>选择文件:</h5>\n");
out.write("\t\t\t\t\t<h5>选择文件:<span id=\"selectcount\"></span></h5>\n");
out.write("\t\t\t\t\t<input type=\"text\" id=\"filepath\" class=\"form-control\"\n");
out.write("\t\t\t\t\t\tonclick=\"checkpath()\" onfocus=\"this.blur()\"\n");
out.write("\t\t\t\t\t\tplaceholder=\"请点击选择要上传的文件……\"> <input type=\"file\"\n");
out.write("\t\t\t\t\t\tid=\"uploadfile\" style=\"display: none;\" onchange=\"showfilepath()\">\n");
out.write("\t\t\t\t\t<br />\n");
out.write("\t\t\t\t\t<h5>上传进度:</h5>\n");
out.write("\t\t\t\t\t\tid=\"uploadfile\" style=\"display: none;\" onchange=\"showfilepath()\"\n");
out.write("\t\t\t\t\t\tmultiple=\"multiple\"> <br />\n");
out.write("\t\t\t\t\t<h5>\n");
out.write("\t\t\t\t\t\t上传进度:<span id=\"filecount\"></span>\n");
out.write("\t\t\t\t\t</h5>\n");
out.write("\t\t\t\t\t<div class=\"progress\">\n");
out.write("\t\t\t\t\t\t<div id=\"pros\" class=\"progress-bar\" role=\"progressbar\"\n");
out.write("\t\t\t\t\t\t\taria-valuenow=\"0\" aria-valuemin=\"0\" aria-valuemax=\"100\"\n");
out.write("\t\t\t\t\t\t\tstyle=\"width: 0%;\">\n");
out.write("\t\t\t\t\t\t\t<span class=\"sr-only\">0% Complete</span>\n");
out.write("\t\t\t\t\t\t\t<span class=\"sr-only\"></span>\n");
out.write("\t\t\t\t\t\t</div>\n");
out.write("\t\t\t\t\t</div>\n");
out.write("\t\t\t\t\t<h5>上传状态:</h5>\n");
out.write("\t\t\t\t\t<div class=\"panel panel-default\">\n");
out.write("\t\t\t\t\t\t<div class=\"panel-body\">\n");
out.write("\t\t\t\t\t\t\t<div id=\"uploadstatus\" class=\"uploadstatusbox\"></div>\n");
out.write("\t\t\t\t\t\t</div>\n");
out.write("\t\t\t\t\t</div>\n");
out.write("\t\t\t\t\t<div id=\"uploadFileAlert\" role=\"alert\"></div>\n");
out.write("\t\t\t\t</div>\n");
out.write("\t\t\t\t<div class=\"modal-footer\">\n");
out.write("\t\t\t\t\t<button type=\"button\" class=\"btn btn-default\" onclick='abortUpload()'>取消</button>\n");
out.write("\t\t\t\t\t<button type=\"button\" class=\"btn btn-default\"\n");
out.write("\t\t\t\t\t\tonclick='abortUpload()'>取消</button>\n");
out.write("\t\t\t\t\t<button id=\"umbutton\" type='button' class='btn btn-primary'\n");
out.write("\t\t\t\t\t\tonclick='checkUploadFile()'>开始上传</button>\n");
out.write("\t\t\t\t</div>\n");
......@@ -496,7 +505,7 @@ public final class home_jsp extends org.apache.jasper.runtime.HttpJspBase
out.write("</body>\n");
out.write("<script type=\"text/javascript\" src=\"js/jquery-3.3.1.min.js\"></script>\n");
out.write("<script type=\"text/javascript\" src=\"js/bootstrap.min.js\"></script>\n");
out.write("<script type=\"text/javascript\" src=\"js/home.min.js\"></script>\n");
out.write("<script type=\"text/javascript\" src=\"js/home.js\"></script>\n");
out.write("</html>");
} catch (java.lang.Throwable t) {
if (!(t instanceof javax.servlet.jsp.SkipPageException)){
......
文件已添加
无法预览此类型文件
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册