mirror of https://gitee.com/zhang_1334717033/kiftd
Compare commits
37 Commits
v1.0.21-re
...
master
| Author | SHA1 | Date |
|---|---|---|
|
|
dbb335ca09 | |
|
|
eaf74ae6c5 | |
|
|
2a81d74a51 | |
|
|
7e44880f93 | |
|
|
79e6f2a434 | |
|
|
9d104a2de9 | |
|
|
317b6bb50a | |
|
|
ea59059f33 | |
|
|
5c19709a2d | |
|
|
00817287c8 | |
|
|
077c3150fa | |
|
|
4f5d0e377b | |
|
|
8b7a235b25 | |
|
|
18cfba5249 | |
|
|
de84f1885c | |
|
|
cbc838895d | |
|
|
2b5d2152e6 | |
|
|
54018d6e7b | |
|
|
ab12390b51 | |
|
|
5ba01aaebc | |
|
|
23ef3fd95c | |
|
|
9c3ab72d57 | |
|
|
5a55a2937d | |
|
|
21319d7e34 | |
|
|
b9c332d48d | |
|
|
68bae3d79d | |
|
|
1a3ca0b9ab | |
|
|
57eeb3164c | |
|
|
efd8d991ff | |
|
|
67322caf88 | |
|
|
8b4952bb83 | |
|
|
38eb22c742 | |
|
|
07a1c8f175 | |
|
|
642e9a0e8b | |
|
|
2bcc6e7a7f | |
|
|
c54fd6b0ea | |
|
|
690805759d |
20
README.md
20
README.md
|
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
## 快速导航
|
## 快速导航
|
||||||
* 访问kiftd官方主页来快速了解kiftd? -- [kiftd官方主页](https://kohgylw.gitee.io/)
|
* 访问kiftd官方主页来快速了解kiftd? -- [kiftd官方主页](https://kohgylw.gitee.io/)
|
||||||
* 国内托管地址——腾讯开发者平台上的项目主页:https://dev.tencent.com/u/kohgylw/p/kiftd/git -- [点击下载](https://dev.tencent.com/u/kohgylw/p/kiftd/git/archive/master)
|
* 国内托管地址——阿里云上的项目主页:https://code.aliyun.com/kohgylw/kiftd/tree/master -- [点击下载](https://code.aliyun.com/kohgylw/kiftd/repository/archive.zip?ref=master)
|
||||||
* 国内托管地址——码云上的项目主页: https://gitee.com/kohgylw/kiftd -- [点击下载](https://gitee.com/kohgylw/kiftd/repository/archive/master.zip)
|
* 国内托管地址——码云上的项目主页: https://gitee.com/kohgylw/kiftd -- [点击下载](https://gitee.com/kohgylw/kiftd/repository/archive/master.zip)
|
||||||
* 国际托管地址——github上的项目主页: https://github.com/KOHGYLW/kiftd -- [点击下载](https://github.com/KOHGYLW/kiftd/archive/master.zip)
|
* 国际托管地址——github上的项目主页: https://github.com/KOHGYLW/kiftd -- [点击下载](https://github.com/KOHGYLW/kiftd/archive/master.zip)
|
||||||
|
|
||||||
|
|
@ -64,8 +64,8 @@ _注:kift为该功能的开发名称,其实际成果命名为kiftd。_
|
||||||
|
|
||||||
### 现在,您只需抽出3分钟时间,就可以立即体验这款专业快捷的网盘服务器了。
|
### 现在,您只需抽出3分钟时间,就可以立即体验这款专业快捷的网盘服务器了。
|
||||||
|
|
||||||
* 马上下载本网盘服务器?请点击右上方绿色按钮“Clone or Download”,之后选择“Download ZIP”进行下载(Github),也可以前往国内托管的下载地址: https://gitee.com/kohgylw/kiftd (码云)
|
* 马上下载本网盘服务器?请点击右上方绿色按钮“Clone or Download”,之后选择“Download ZIP”进行下载(Github),也可以前往国内托管的下载地址: https://gitee.com/kohgylw/kiftd (码云)或 https://code.aliyun.com/kohgylw/kiftd/tree/master (阿里云)
|
||||||
* 想要开始使用?您应该从阅读《kiftd说明文档》开始,这是一份十分全面的官方介绍文档,简单易懂且图文并茂,相信您能很快学会它。想在线阅读?请直接点击上方文件列表中的《kiftd说明文档》来在线预览(该操作仅GitHub有效)。
|
* 想要开始使用?您应该从阅读《kiftd说明文档》开始,这是一份十分全面的官方介绍文档,简单易懂且图文并茂,相信您能很快学会它。想在线阅读?请直接点击上方文件列表中的《kiftd说明文档》来在线预览(该操作仅GitHub有效)
|
||||||
* 立刻获取源代码?请访问本应用代码托管地址:https://github.com/KOHGYLW/kiftd-source (Github)
|
* 立刻获取源代码?请访问本应用代码托管地址:https://github.com/KOHGYLW/kiftd-source (Github)
|
||||||
* 使用中遇到问题?请将您的发现提交到 https://github.com/KOHGYLW/kiftd/issues (Github)
|
* 使用中遇到问题?请将您的发现提交到 https://github.com/KOHGYLW/kiftd/issues (Github)
|
||||||
* 需要联系作者?请立即发件至 kohgylw@163.com ,描述您所遇到的任何问题
|
* 需要联系作者?请立即发件至 kohgylw@163.com ,描述您所遇到的任何问题
|
||||||
|
|
@ -77,13 +77,11 @@ _注:kift为该功能的开发名称,其实际成果命名为kiftd。_
|
||||||
|
|
||||||
> 提示:当您更新版本后,请手动清除浏览器的缓存,之后刷新网盘主页以确保数据文件保持最新!否则可能导致新版页面功能无法使用。
|
> 提示:当您更新版本后,请手动清除浏览器的缓存,之后刷新网盘主页以确保数据文件保持最新!否则可能导致新版页面功能无法使用。
|
||||||
|
|
||||||
### 新版本v1.0.21
|
### 常规更新v1.0.35
|
||||||
_本次更新增强了账户的权限管理功能,同时修复了一些问题。推荐所有用户升级体验。_
|
_本次更新为维护性的更新,修复一些已经发现的问题并优化使用体验,推荐所有用户升级。_
|
||||||
+ 为账户在特定文件夹中授予额外权限——借助这一功能,您能够将账户的权限管理精确到文件夹级别,从而方便您在复杂使用场景中更加灵活地设定账户的权限,详情请见《kiftd说明文档》。
|
+ 修复了当用户执行批量上传操作时,中途切换所在的文件夹可能会导致上传路径发生改变的问题。
|
||||||
+ 修复了当文件夹名称中含有空格时无法上传的问题。
|
+ 升级了内置的MySQL数据库驱动的版本。
|
||||||
+ 优化了配置文件更新机制,使得程序在更新配置文件时能够保留原有的格式和注释。
|
|
||||||
+ 修复了在部分情况下,使用命令模启动kiftd后txt预览功能可能无法正确执行的问题。
|
|
||||||
+ 进一步提高了文件系统的安全性和稳定性。
|
|
||||||
|
|
||||||
> 需要查看更多版本历史信息?请访问: https://kohgylw.gitee.io/News.html
|
> 需要查看更多版本历史信息?请访问: https://kohgylw.gitee.io/News.html
|
||||||
|
|
||||||
|
|
@ -126,4 +124,4 @@ _本次更新增强了账户的权限管理功能,同时修复了一些问题
|
||||||
|
|
||||||
_作者会每隔1-3周浏览一次邮箱,如未能及时回复请耐心等待。回复或许会迟到,但它不会缺席。_
|
_作者会每隔1-3周浏览一次邮箱,如未能及时回复请耐心等待。回复或许会迟到,但它不会缺席。_
|
||||||
|
|
||||||
2018-09-29 kohgylw@青阳龙野 作者保留版权
|
2018-2020 kohgylw@青阳龙野 作者保留版权
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
kiftd说明文档.pdf
BIN
kiftd说明文档.pdf
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -13,18 +13,35 @@
|
||||||
|
|
||||||
<select id="queryById" parameterType="java.lang.String"
|
<select id="queryById" parameterType="java.lang.String"
|
||||||
resultMap="BaseResultMap">
|
resultMap="BaseResultMap">
|
||||||
SELECT * FROM FOLDER WHERE folder_id = #{fid,jdbcType=VARCHAR}
|
SELECT * FROM FOLDER WHERE folder_id =
|
||||||
|
#{fid,jdbcType=VARCHAR}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="queryByParentId" parameterType="java.lang.String"
|
<select id="queryByParentId" parameterType="java.lang.String"
|
||||||
resultMap="BaseResultMap">
|
resultMap="BaseResultMap">
|
||||||
SELECT * FROM FOLDER WHERE folder_parent = #{pid,jdbcType=VARCHAR}
|
SELECT * FROM FOLDER WHERE folder_parent =
|
||||||
|
#{pid,jdbcType=VARCHAR} LIMIT 0,2147483647
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="countByParentId" parameterType="java.lang.String"
|
||||||
|
resultType="java.lang.Long">
|
||||||
|
SELECT COUNT(folder_id) FROM FOLDER WHERE folder_parent =
|
||||||
|
#{pid,jdbcType=VARCHAR}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="queryByParentIdSection" parameterType="java.util.Map"
|
||||||
|
resultMap="BaseResultMap">
|
||||||
|
SELECT * FROM FOLDER WHERE folder_parent =
|
||||||
|
#{pid,jdbcType=VARCHAR} LIMIT
|
||||||
|
#{offset,jdbcType=INTEGER},#{rows,jdbcType=INTEGER}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="queryByParentIdAndFolderName" parameterType="java.util.Map"
|
<select id="queryByParentIdAndFolderName" parameterType="java.util.Map"
|
||||||
resultMap="BaseResultMap">
|
resultMap="BaseResultMap">
|
||||||
SELECT * FROM FOLDER WHERE folder_parent = #{parentId,jdbcType=VARCHAR} AND
|
SELECT * FROM FOLDER WHERE folder_parent =
|
||||||
folder_name = #{folderName,jdbcType=VARCHAR}
|
#{parentId,jdbcType=VARCHAR} AND
|
||||||
|
folder_name =
|
||||||
|
#{folderName,jdbcType=VARCHAR}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<insert id="insertNewFolder" parameterType="kohgylw.kiftd.server.model.Folder">
|
<insert id="insertNewFolder" parameterType="kohgylw.kiftd.server.model.Folder">
|
||||||
|
|
@ -33,23 +50,39 @@
|
||||||
</insert>
|
</insert>
|
||||||
|
|
||||||
<delete id="deleteById" parameterType="java.lang.String">
|
<delete id="deleteById" parameterType="java.lang.String">
|
||||||
DELETE FROM FOLDER WHERE folder_id=#{folderId,jdbcType=VARCHAR}
|
DELETE FROM FOLDER WHERE
|
||||||
|
folder_id=#{folderId,jdbcType=VARCHAR}
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<update id="updateFolderNameById" parameterType="java.util.Map">
|
<update id="updateFolderNameById" parameterType="java.util.Map">
|
||||||
UPDATE FOLDER SET folder_name = #{newName,jdbcType=VARCHAR} WHERE folder_id
|
UPDATE FOLDER
|
||||||
= #{folderId,jdbcType=VARCHAR}
|
SET folder_name = #{newName,jdbcType=VARCHAR} WHERE folder_id
|
||||||
|
=
|
||||||
|
#{folderId,jdbcType=VARCHAR}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<update id="updateFolderConstraintById" parameterType="java.util.Map">
|
<update id="updateFolderConstraintById" parameterType="java.util.Map">
|
||||||
UPDATE FOLDER SET folder_constraint = #{newConstraint,jdbcType=INTEGER} WHERE folder_id
|
UPDATE
|
||||||
|
FOLDER SET folder_constraint = #{newConstraint,jdbcType=INTEGER} WHERE
|
||||||
|
folder_id
|
||||||
= #{folderId,jdbcType=VARCHAR}
|
= #{folderId,jdbcType=VARCHAR}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<update id="moveById" parameterType="java.util.Map">
|
<update id="moveById" parameterType="java.util.Map">
|
||||||
UPDATE FOLDER SET
|
UPDATE FOLDER SET
|
||||||
folder_parent = #{locationpath,jdbcType=VARCHAR} WHERE folder_id =
|
folder_parent = #{locationpath,jdbcType=VARCHAR} WHERE folder_id =
|
||||||
#{folderId,jdbcType=VARCHAR}
|
#{folderId,jdbcType=VARCHAR}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
|
<update id="update" parameterType="kohgylw.kiftd.server.model.Folder">
|
||||||
|
UPDATE FOLDER SET folder_name
|
||||||
|
=
|
||||||
|
#{folderName,jdbcType=VARCHAR},folder_creation_date =
|
||||||
|
#{folderCreationDate,jdbcType=VARCHAR},folder_creator =
|
||||||
|
#{folderCreator,jdbcType=VARCHAR},folder_parent =
|
||||||
|
#{folderParent,jdbcType=VARCHAR},folder_constraint =
|
||||||
|
#{folderConstraint,jdbcType=INTEGER} WHERE folder_id =
|
||||||
|
#{folderId,jdbcType=VARCHAR}
|
||||||
|
</update>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -16,6 +16,19 @@
|
||||||
<select id="queryByParentFolderId" parameterType="java.lang.String"
|
<select id="queryByParentFolderId" parameterType="java.lang.String"
|
||||||
resultMap="BaseResultMap">
|
resultMap="BaseResultMap">
|
||||||
SELECT * FROM FILE WHERE file_parent_folder =
|
SELECT * FROM FILE WHERE file_parent_folder =
|
||||||
|
#{pfid,jdbcType=VARCHAR} LIMIT 0,2147483647
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="queryByParentFolderIdSection" parameterType="java.util.Map"
|
||||||
|
resultMap="BaseResultMap">
|
||||||
|
SELECT * FROM FILE WHERE file_parent_folder =
|
||||||
|
#{pfid,jdbcType=VARCHAR} LIMIT
|
||||||
|
#{offset,jdbcType=INTEGER},#{rows,jdbcType=INTEGER}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="countByParentFolderId" parameterType="java.lang.String"
|
||||||
|
resultType="java.lang.Long">
|
||||||
|
SELECT COUNT(file_id) FROM FILE WHERE file_parent_folder =
|
||||||
#{pfid,jdbcType=VARCHAR}
|
#{pfid,jdbcType=VARCHAR}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
@ -57,14 +70,17 @@
|
||||||
#{fileId,jdbcType=VARCHAR}
|
#{fileId,jdbcType=VARCHAR}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<select id="queryAll" resultMap="BaseResultMap">
|
|
||||||
SELECT * FROM FILE
|
|
||||||
</select>
|
|
||||||
|
|
||||||
<select id="queryByPath" parameterType="java.lang.String"
|
<select id="queryByPath" parameterType="java.lang.String"
|
||||||
resultMap="BaseResultMap">
|
resultMap="BaseResultMap">
|
||||||
SELECT * FROM FILE WHERE file_path =
|
SELECT * FROM FILE WHERE file_path =
|
||||||
#{path,jdbcType=VARCHAR}
|
#{path,jdbcType=VARCHAR} LIMIT 0,2147483647
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="queryByPathExcludeById" parameterType="java.util.Map"
|
||||||
|
resultMap="BaseResultMap">
|
||||||
|
SELECT * FROM FILE WHERE file_path =
|
||||||
|
#{path,jdbcType=VARCHAR} AND file_id <>
|
||||||
|
#{fileId,jdbcType=VARCHAR} LIMIT 0,2147483647
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="queryBySomeFolder" parameterType="java.lang.String"
|
<select id="queryBySomeFolder" parameterType="java.lang.String"
|
||||||
|
|
@ -72,13 +88,7 @@
|
||||||
SELECT * FROM FILE WHERE file_parent_folder in (SELECT
|
SELECT * FROM FILE WHERE file_parent_folder in (SELECT
|
||||||
file_parent_folder
|
file_parent_folder
|
||||||
FROM FILE WHERE file_id =
|
FROM FILE WHERE file_id =
|
||||||
#{fileId,jdbcType=VARCHAR})
|
#{fileId,jdbcType=VARCHAR}) LIMIT 0,2147483647
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<update id="moveById" parameterType="java.util.Map">
|
|
||||||
UPDATE FILE SET
|
|
||||||
file_parent_folder = #{locationpath,jdbcType=VARCHAR} WHERE file_id =
|
|
||||||
#{fileId,jdbcType=VARCHAR}
|
|
||||||
</update>
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="kohgylw.kiftd.server.mapper.PropertiesMapper">
|
||||||
|
<resultMap id="BaseResultMap" type="kohgylw.kiftd.server.model.Propertie">
|
||||||
|
<id column="propertie_key" jdbcType="VARCHAR" property="propertieKey" />
|
||||||
|
<result column="propertie_value" jdbcType="VARCHAR" property="propertieValue" />
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<insert id="insert" parameterType="kohgylw.kiftd.server.model.Propertie">
|
||||||
|
INSERT INTO PROPERTIES
|
||||||
|
VALUES(#{propertieKey,jdbcType=VARCHAR},#{propertieValue,jdbcType=VARCHAR})
|
||||||
|
</insert>
|
||||||
|
|
||||||
|
<update id="update" parameterType="kohgylw.kiftd.server.model.Propertie">
|
||||||
|
UPDATE PROPERTIES SET propertie_value =
|
||||||
|
#{propertieValue,jdbcType=VARCHAR} WHERE propertie_key =
|
||||||
|
#{propertieKey,jdbcType=VARCHAR}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<delete id="deleteByKey" parameterType="java.lang.String">
|
||||||
|
DELETE FROM PROPERTIES WHERE
|
||||||
|
propertie_key = #{propertieKey,jdbcType=VARCHAR}
|
||||||
|
</delete>
|
||||||
|
|
||||||
|
<select id="selectByKey" parameterType="java.lang.String"
|
||||||
|
resultMap="BaseResultMap">
|
||||||
|
SELECT * FROM PROPERTIES WHERE propertie_key =
|
||||||
|
#{propertieKey,jdbcType=VARCHAR}
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
|
|
@ -96,6 +96,21 @@ body {
|
||||||
opacity: 0.7;
|
opacity: 0.7;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.shownoticebox {
|
||||||
|
width: 40px;
|
||||||
|
height: 75px;
|
||||||
|
position: fixed;
|
||||||
|
top: 50px;
|
||||||
|
right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.shownoticebutton {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background-color: #FCFCFC;
|
||||||
|
color: #104E8B; alpha (Opacity=70);
|
||||||
|
}
|
||||||
|
|
||||||
td {
|
td {
|
||||||
word-break: break-all;
|
word-break: break-all;
|
||||||
word-wrap: break-all;
|
word-wrap: break-all;
|
||||||
|
|
@ -105,4 +120,14 @@ td {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
max-height: 35px;
|
max-height: 35px;
|
||||||
cursor: pointer
|
cursor: pointer
|
||||||
|
}
|
||||||
|
|
||||||
|
.loadingremaininngbox {
|
||||||
|
width: 100%;
|
||||||
|
height: 40px;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 0px;
|
||||||
|
left: 0px;
|
||||||
|
line-height: 40px;
|
||||||
|
color: #104E8B; alpha (Opacity=70);
|
||||||
}
|
}
|
||||||
|
|
@ -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}.vercodeimg{width:100%;max-height:35px;cursor:pointer}
|
@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}.shownoticebox{width:40px;height:75px;position:fixed;top:50px;right:0}.shownoticebutton{width:100%;height:100%;background-color:#fcfcfc;color:#104e8b;alpha(Opacity=70)}td{word-break:break-all;word-wrap:break-all}.vercodeimg{width:100%;max-height:35px;cursor:pointer}.loadingremaininngbox{width:100%;height:40px;position:fixed;bottom:0;left:0;line-height:40px;color:#104e8b;alpha(Opacity=70)}
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,5 +1,7 @@
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
<!-- kiftd 主页面 by 青阳龙野 -->
|
<!-- 青阳网络文件传输系统 kiftd v1.0.35-RELEASE -->
|
||||||
|
<!-- 欢迎访问主界面 -->
|
||||||
|
<!-- by 青阳龙野(kohgylw@163.com) -->
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<base href="/">
|
<base href="/">
|
||||||
|
|
@ -38,8 +40,9 @@
|
||||||
class="graytext">KIFT</span>
|
class="graytext">KIFT</span>
|
||||||
</small>
|
</small>
|
||||||
</em>
|
</em>
|
||||||
</span> <span id="tb" class="rightbtn"></span>
|
</span> <span id="tb" class="rightbtn hidden-xs"></span>
|
||||||
<button class="btn btn-link rightbtn" onclick="refreshFolderView()">
|
<button class="btn btn-link rightbtn hidden-xs"
|
||||||
|
onclick="refreshFolderView()">
|
||||||
刷新 <span class="glyphicon glyphicon-repeat" aria-hidden="true"></span>
|
刷新 <span class="glyphicon glyphicon-repeat" aria-hidden="true"></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -49,7 +52,7 @@
|
||||||
<!-- 信息栏、操作栏与文件列表 -->
|
<!-- 信息栏、操作栏与文件列表 -->
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-12">
|
<div class="col-md-12">
|
||||||
<p id="vicetbbox" class="subtitle" style="display: none;">
|
<p class="subtitle visible-xs-block">
|
||||||
<span id="tb2"></span>
|
<span id="tb2"></span>
|
||||||
<button class="btn btn-link" onclick="refreshFolderView()">
|
<button class="btn btn-link" onclick="refreshFolderView()">
|
||||||
刷新 <span class="glyphicon glyphicon-repeat" aria-hidden="true"></span>
|
刷新 <span class="glyphicon glyphicon-repeat" aria-hidden="true"></span>
|
||||||
|
|
@ -81,13 +84,12 @@
|
||||||
class="caret"></span></a>
|
class="caret"></span></a>
|
||||||
<ul class="dropdown-menu" id="parentFolderList"></ul></li>
|
<ul class="dropdown-menu" id="parentFolderList"></ul></li>
|
||||||
</ul>
|
</ul>
|
||||||
<form id="filetableoptmenusreach"
|
<form class="navbar-form navbar-left hidden-xs">
|
||||||
class="navbar-form navbar-left">
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input id="sreachKeyWordIn" type="text" class="form-control"
|
<input id="sreachKeyWordIn" type="text" class="form-control"
|
||||||
placeholder="请输入文件名...">
|
placeholder="请输入文件名...">
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="btn btn-default"
|
<button id="searchbtn" type="button" class="btn btn-default"
|
||||||
onclick="doSearchFile()">搜索</button>
|
onclick="doSearchFile()">搜索</button>
|
||||||
</form>
|
</form>
|
||||||
<ul class="nav navbar-nav navbar-right">
|
<ul class="nav navbar-nav navbar-right">
|
||||||
|
|
@ -99,23 +101,34 @@
|
||||||
class="glyphicon glyphicon-cog"></span> 操作 <span
|
class="glyphicon glyphicon-cog"></span> 操作 <span
|
||||||
class="caret"></span></a>
|
class="caret"></span></a>
|
||||||
<ul class="dropdown-menu" id="fileListDropDown">
|
<ul class="dropdown-menu" id="fileListDropDown">
|
||||||
<li id="uploadFileButtonLi"><a>上传文件 <span
|
<li id="uploadFileButtonLi"><a
|
||||||
class="pull-right"><span
|
href="javascript:void(0);">上传文件 <span class="pull-right"><span
|
||||||
class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span>+U</span></a></li>
|
class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span>+U</span></a></li>
|
||||||
<li id="uploadFolderButtonLi"><a>上传文件夹 <span
|
<li id="uploadFolderButtonLi"><a
|
||||||
|
href="javascript:void(0);">上传文件夹 <span
|
||||||
class="pull-right"><span
|
class="pull-right"><span
|
||||||
class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span>+F</span></a></li>
|
class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span>+F</span></a></li>
|
||||||
<li role="separator" class="divider"></li>
|
<li role="separator" class="divider"></li>
|
||||||
<li id="createFolderButtonLi"><a>新建文件夹 <span
|
<li id="createFolderButtonLi"><a
|
||||||
|
href="javascript:void(0);">新建文件夹 <span
|
||||||
class="pull-right"><span
|
class="pull-right"><span
|
||||||
class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span>+N</span></a></li>
|
class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span>+N</span></a></li>
|
||||||
<li role="separator" class="divider"></li>
|
<li role="separator" class="divider"></li>
|
||||||
<li id="cutFileButtonLi"><a><span id='cutSignTx'>剪切
|
<li id="copyFileButtonLi"><a href="javascript:void(0);"><span
|
||||||
<span class="pull-right"><span
|
id='copySignTx'>复制 <span class="pull-right"><span
|
||||||
class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span>+C</span>
|
class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span>+C</span>
|
||||||
</span></a></li>
|
</span></a></li>
|
||||||
<li id="deleteSeelectFileButtonLi"><a>删除 <span
|
<li id="cutFileButtonLi"><a href="javascript:void(0);"><span
|
||||||
class="pull-right"><span
|
id='cutSignTx'>剪切 <span class="pull-right"><span
|
||||||
|
class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span>+X</span>
|
||||||
|
</span></a></li>
|
||||||
|
<li id="stickFileButtonLi" class="hidden"><a
|
||||||
|
href="javascript:void(0);"><span id='stickSignTx'>粘贴<span
|
||||||
|
id="stickFilesCount"></span> <span class="pull-right"><span
|
||||||
|
class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span>+V</span>
|
||||||
|
</span></a></li>
|
||||||
|
<li id="deleteSeelectFileButtonLi"><a
|
||||||
|
href="javascript:void(0);">删除 <span class="pull-right"><span
|
||||||
class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span>+D</span></a></li>
|
class="glyphicon glyphicon-arrow-up" aria-hidden="true"></span>+D</span></a></li>
|
||||||
</ul></li>
|
</ul></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
@ -127,13 +140,14 @@
|
||||||
<tr>
|
<tr>
|
||||||
<th onclick="sortbyfn()">文件名<span id="sortByFN"
|
<th onclick="sortbyfn()">文件名<span id="sortByFN"
|
||||||
aria-hidden="true" style="float: right"></span></th>
|
aria-hidden="true" style="float: right"></span></th>
|
||||||
<th class="hiddenColumn" onclick="sortbycd()">创建日期<span
|
<th class="hidden-xs" onclick="sortbycd()">创建日期<span
|
||||||
id="sortByCD" aria-hidden="true" style="float: right"></span></th>
|
id="sortByCD" aria-hidden="true" style="float: right"></span></th>
|
||||||
<th onclick="sortbyfs()">大小<span id="sortByFS"
|
<th onclick="sortbyfs()">大小<span id="sortByFS"
|
||||||
aria-hidden="true" style="float: right"></span></th>
|
aria-hidden="true" style="float: right"></span></th>
|
||||||
<th class="hiddenColumn" onclick="sortbycn()">创建者<span
|
<th class="hidden-xs" onclick="sortbycn()">创建者<span
|
||||||
id="sortByCN" aria-hidden="true" style="float: right"></span></th>
|
id="sortByCN" aria-hidden="true" style="float: right"></span></th>
|
||||||
<th onclick="showOriginFolderView()">操作</th>
|
<th onclick="showOriginFolderView()">操作<span id="sortByOR"
|
||||||
|
aria-hidden="true" style="float: right"></span></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="foldertable"></tbody>
|
<tbody id="foldertable"></tbody>
|
||||||
|
|
@ -281,7 +295,8 @@
|
||||||
<h5 id="deleteFolderMessage"></h5>
|
<h5 id="deleteFolderMessage"></h5>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
|
<button id="cancelDeleteFolderBtn" type="button"
|
||||||
|
class="btn btn-default" data-dismiss="modal">取消</button>
|
||||||
<span id="deleteFolderBox"></span>
|
<span id="deleteFolderBox"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -428,9 +443,9 @@
|
||||||
onclick="checkimportpath()" onfocus="this.blur()"
|
onclick="checkimportpath()" onfocus="this.blur()"
|
||||||
placeholder="请点击选择要上传的文件夹……" folderConstraintLevel="0">
|
placeholder="请点击选择要上传的文件夹……" folderConstraintLevel="0">
|
||||||
<div class="input-group-btn">
|
<div class="input-group-btn">
|
||||||
<button id="importFolderLevelBtn" type="button" class="btn btn-default dropdown-toggle"
|
<button id="importFolderLevelBtn" type="button"
|
||||||
data-toggle="dropdown" aria-haspopup="true"
|
class="btn btn-default dropdown-toggle" data-toggle="dropdown"
|
||||||
aria-expanded="false">
|
aria-haspopup="true" aria-expanded="false">
|
||||||
<span id="importfoldertype">公开的</span> <span
|
<span id="importfoldertype">公开的</span> <span
|
||||||
class="caret"></span>
|
class="caret"></span>
|
||||||
</button>
|
</button>
|
||||||
|
|
@ -440,7 +455,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<input type="file" id="importfolder" style="display: none;"
|
<input type="file" id="importfolder" style="display: none;"
|
||||||
onchange="getInputImport()" multiple="multiple" webkitdirectory>
|
onchange="getInputImport()" multiple="multiple"
|
||||||
|
webkitdirectory="true">
|
||||||
<h5>
|
<h5>
|
||||||
上传进度:<span id="importcount"></span>
|
上传进度:<span id="importcount"></span>
|
||||||
</h5>
|
</h5>
|
||||||
|
|
@ -466,8 +482,7 @@
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<button id="importcoverbtn" type="button"
|
<button id="importcoverbtn" type="button"
|
||||||
class="btn btn-danger btn-sm"
|
class="btn btn-danger btn-sm" onclick="importAndCover()">覆盖</button>
|
||||||
onclick="importAndCover()">覆盖</button>
|
|
||||||
<button type="button" class="btn btn-default btn-sm"
|
<button type="button" class="btn btn-default btn-sm"
|
||||||
onclick="abortImport()">取消上传</button>
|
onclick="abortImport()">取消上传</button>
|
||||||
<button type="button" class="btn btn-default btn-sm"
|
<button type="button" class="btn btn-default btn-sm"
|
||||||
|
|
@ -476,7 +491,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-default" onclick='abortImport()'>取消</button>
|
<button type="button" class="btn btn-default"
|
||||||
|
onclick='abortImport()'>取消</button>
|
||||||
<button id="importbutton" type='button' class='btn btn-primary'
|
<button id="importbutton" type='button' class='btn btn-primary'
|
||||||
onclick='checkImportFolder()'>开始上传</button>
|
onclick='checkImportFolder()'>开始上传</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -532,7 +548,8 @@
|
||||||
<h5 id="deleteFileMessage" class="wordbreak"></h5>
|
<h5 id="deleteFileMessage" class="wordbreak"></h5>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
|
<button id="cancelDeleteFileBox" type="button"
|
||||||
|
class="btn btn-default" data-dismiss="modal">取消</button>
|
||||||
<span id="deleteFileBox"></span>
|
<span id="deleteFileBox"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -596,7 +613,8 @@
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
|
<button id="cancelDownloadAllCheckedBtn" type="button"
|
||||||
|
class="btn btn-default" data-dismiss="modal">取消</button>
|
||||||
<span id="downloadAllCheckedBox"></span>
|
<span id="downloadAllCheckedBox"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -685,7 +703,8 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
|
<button id="cancelMoveFilesBtn" type="button"
|
||||||
|
class="btn btn-default" data-dismiss="modal">取消</button>
|
||||||
<span id="moveFilesBox"></span>
|
<span id="moveFilesBox"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -725,6 +744,119 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- end 文件夹详情模态框 -->
|
<!-- end 文件夹详情模态框 -->
|
||||||
|
<!-- 修改密码模态框 -->
|
||||||
|
<div class="modal fade bs-example-modal-sm" id="changePasswordModal"
|
||||||
|
tabindex="-1" role="dialog" aria-labelledby="changePasswordModelTitle">
|
||||||
|
<div class="modal-dialog" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal"
|
||||||
|
aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
<h4 class="modal-title" id="changePasswordModelTitle">
|
||||||
|
<span class="glyphicon glyphicon-edit"></span> 修改密码
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<form class="form-horizontal">
|
||||||
|
<div class="form-group" id="changepassword_oldepwdbox">
|
||||||
|
<label for="changepassword_oldpwd"
|
||||||
|
id="changepassword_oldpwdtitle" class="col-sm-3 control-label">旧密码:</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input type="password" class="form-control"
|
||||||
|
id="changepassword_oldpwd" placeholder="请输入旧密码确认身份……">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group" id="changepassword_newpwdbox">
|
||||||
|
<label for="changepassword_newpwd"
|
||||||
|
id="changepassword_newpwdtitle" class="col-sm-3 control-label">新密码:</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input type="password" class="form-control"
|
||||||
|
id="changepassword_newpwd" placeholder="请输入新密码……">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group" id="changepassword_reqnewpwdbox">
|
||||||
|
<label for="changepassword_reqnewpwd"
|
||||||
|
id="changepassword_reqnewpwdtitle"
|
||||||
|
class="col-sm-3 control-label">确认新密码:</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input type="password" class="form-control"
|
||||||
|
id="changepassword_reqnewpwd" placeholder="请再次输入新密码……">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="changepassword_vccodebox" class="form-group"></div>
|
||||||
|
<div id="changepasswordalertbox" class="alert alert-danger"
|
||||||
|
role="alert"></div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
|
||||||
|
<button type="button" id="changePasswordButton"
|
||||||
|
class="btn btn-danger" onclick="doChangePassword()">立即修改</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- end 改密 -->
|
||||||
|
<!-- 永久资源链接显示模态框 -->
|
||||||
|
<div class="modal fade" id="fileChainModal" tabindex="-1" role="dialog"
|
||||||
|
aria-labelledby="chainModalLabel">
|
||||||
|
<div class="modal-dialog modal-sm" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal"
|
||||||
|
aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
<h4 class="modal-title" id="chainModalLabel">
|
||||||
|
<span class="glyphicon glyphicon-link"></span> 资源链接
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<textarea id="fileChainTextarea" class="form-control" rows="3"
|
||||||
|
readonly></textarea>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button id="copyChainBtn" type="button" class="btn btn-info"
|
||||||
|
onclick="copyFileChain()">复制链接</button>
|
||||||
|
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- end 永久资源链接 -->
|
||||||
|
<!-- 公告信息栏 -->
|
||||||
|
<div class="modal fade" id="noticeModal" tabindex="-1" role="dialog"
|
||||||
|
aria-labelledby="noticeModalLabel">
|
||||||
|
<div class="modal-dialog modal-lg" role="document">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal"
|
||||||
|
aria-label="Close">
|
||||||
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
<h4 class="modal-title" id="noticeModalLabel">公告信息</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body" style="overflow: scroll;"
|
||||||
|
id="noticeModalBody"></div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<label class="text-muted"> <input type="checkbox"
|
||||||
|
id="dontShowSomeNoticeAt30Day"> 30天内不再显示相同的公告信息
|
||||||
|
</label>
|
||||||
|
<button type="button" class="btn btn-primary" data-dismiss="modal">关闭</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- end 公告信息栏 -->
|
||||||
|
<!-- 显示公告按钮 -->
|
||||||
|
<div id="shownoticebox" class="shownoticebox text-center hidden">
|
||||||
|
<button type="button" onclick="showNotice()" class="shownoticebutton">
|
||||||
|
<span class="glyphicon glyphicon-bookmark" aria-hidden="true"></span><br />公<br />告
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<!-- end 显示公告按钮 -->
|
||||||
<!-- 返回顶部按钮(隐藏式) -->
|
<!-- 返回顶部按钮(隐藏式) -->
|
||||||
<div id="gobacktotopbox" class="gobacktopbox text-center hidden">
|
<div id="gobacktotopbox" class="gobacktopbox text-center hidden">
|
||||||
<button type="button" onclick="goBackToTop()" class="gobacktopbutton">
|
<button type="button" onclick="goBackToTop()" class="gobacktopbutton">
|
||||||
|
|
@ -732,6 +864,13 @@
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<!-- end 返回顶部按钮 -->
|
<!-- end 返回顶部按钮 -->
|
||||||
|
<!-- 加载余下部分的提示 -->
|
||||||
|
<div id="loadingremaininngbox"
|
||||||
|
class="loadingremaininngbox text-center bg-info hidden">
|
||||||
|
正在加载文件列表:<span id="loadingrate">0%</span>... <span
|
||||||
|
class="glyphicon glyphicon-hourglass" aria-hidden="true"></span>
|
||||||
|
</div>
|
||||||
|
<!-- end 加载余下部分的提示 -->
|
||||||
</body>
|
</body>
|
||||||
<!-- jquery基本框架 -->
|
<!-- jquery基本框架 -->
|
||||||
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
|
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
|
|
@ -16,6 +16,23 @@ $(function() {
|
||||||
$("#vercodebox").addClass("hidden");
|
$("#vercodebox").addClass("hidden");
|
||||||
// 打开页面自动聚焦账户输入框
|
// 打开页面自动聚焦账户输入框
|
||||||
$("#accountid").focus();
|
$("#accountid").focus();
|
||||||
|
// 询问是否可以显示注册按钮
|
||||||
|
$.ajax({
|
||||||
|
type : "POST",
|
||||||
|
dataType : "text",
|
||||||
|
data : {},
|
||||||
|
url : "homeController/askForAllowSignUpOrNot.ajax",
|
||||||
|
success : function(result) {
|
||||||
|
if (result == "true") {
|
||||||
|
$("#signupBox").removeClass("hidden");
|
||||||
|
$("#signupBox").addClass("show");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error : function() {
|
||||||
|
alert("错误:无法连接到kiftd服务器,请检查您的网络连接或查看服务器运行状态。");
|
||||||
|
}
|
||||||
|
});
|
||||||
})
|
})
|
||||||
|
|
||||||
function dologin() {
|
function dologin() {
|
||||||
|
|
@ -35,6 +52,7 @@ function dologin() {
|
||||||
$("#accountpwdbox").removeClass("has-error");
|
$("#accountpwdbox").removeClass("has-error");
|
||||||
}
|
}
|
||||||
if (check == "y") {
|
if (check == "y") {
|
||||||
|
startLogin();
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type : "POST",
|
type : "POST",
|
||||||
dataType : "text",
|
dataType : "text",
|
||||||
|
|
@ -50,9 +68,7 @@ function dologin() {
|
||||||
sendLoginInfo(encrypted);
|
sendLoginInfo(encrypted);
|
||||||
},
|
},
|
||||||
error : function() {
|
error : function() {
|
||||||
$("#alertbox").addClass("alert");
|
showAlert("提示:登录请求失败,请检查网络或服务器运行状态");
|
||||||
$("#alertbox").addClass("alert-danger");
|
|
||||||
$("#alertbox").text("提示:登录请求失败,请检查网络或服务器运行状态");
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -76,45 +92,37 @@ function sendLoginInfo(encrypted) {
|
||||||
$("#vercodebox").addClass("hidden");
|
$("#vercodebox").addClass("hidden");
|
||||||
switch (result) {
|
switch (result) {
|
||||||
case "permitlogin":
|
case "permitlogin":
|
||||||
|
finishLogin();
|
||||||
$("#accountidbox").removeClass("has-error");
|
$("#accountidbox").removeClass("has-error");
|
||||||
$("#accountpwdbox").removeClass("has-error");
|
$("#accountpwdbox").removeClass("has-error");
|
||||||
window.location.href = "home.html";
|
window.location.href = "/home.html";
|
||||||
break;
|
break;
|
||||||
case "accountnotfound":
|
case "accountnotfound":
|
||||||
$("#accountidbox").addClass("has-error");
|
$("#accountidbox").addClass("has-error");
|
||||||
$("#accountpwdbox").removeClass("has-error");
|
$("#accountpwdbox").removeClass("has-error");
|
||||||
$("#alertbox").addClass("alert");
|
showAlert("提示:登录失败,账户不存在或未设置");
|
||||||
$("#alertbox").addClass("alert-danger");
|
|
||||||
$("#alertbox").text("提示:登录失败,账户不存在或未设置");
|
|
||||||
break;
|
break;
|
||||||
case "accountpwderror":
|
case "accountpwderror":
|
||||||
$("#accountpwdbox").addClass("has-error");
|
$("#accountpwdbox").addClass("has-error");
|
||||||
$("#accountidbox").removeClass("has-error");
|
$("#accountidbox").removeClass("has-error");
|
||||||
$("#alertbox").addClass("alert");
|
showAlert("提示:登录失败,密码错误或未设置");
|
||||||
$("#alertbox").addClass("alert-danger");
|
|
||||||
$("#alertbox").text("提示:登录失败,密码错误或未设置");
|
|
||||||
break;
|
break;
|
||||||
case "needsubmitvercode":
|
case "needsubmitvercode":
|
||||||
|
finishLogin();
|
||||||
$("#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").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").removeClass("hidden");
|
||||||
$("#vercodebox").addClass("show");
|
$("#vercodebox").addClass("show");
|
||||||
break;
|
break;
|
||||||
case "error":
|
case "error":
|
||||||
$("#alertbox").addClass("alert");
|
showAlert("提示:登录失败,登录请求无法通过效验(可能是请求耗时过长导致的)");
|
||||||
$("#alertbox").addClass("alert-danger");
|
|
||||||
$("#alertbox").text("提示:登录失败,登录请求无法通过效验(可能是请求耗时过长导致的)");
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$("#alertbox").addClass("alert");
|
showAlert("提示:无法登录,未知错误");
|
||||||
$("#alertbox").addClass("alert-danger");
|
|
||||||
$("#alertbox").text("提示:无法登录,未知错误");
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error : function() {
|
error : function() {
|
||||||
$("#alertbox").addClass("alert");
|
showAlert("提示:登录请求失败,请检查网络或服务器运行状态");
|
||||||
$("#alertbox").addClass("alert-danger");
|
|
||||||
$("#alertbox").text("提示:登录请求失败,请检查网络或服务器运行状态");
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
@ -122,4 +130,27 @@ function sendLoginInfo(encrypted) {
|
||||||
//获取一个新的验证码
|
//获取一个新的验证码
|
||||||
function getNewVerCode(){
|
function getNewVerCode(){
|
||||||
$("#showvercode").attr("src","homeController/getNewVerCode.do?s="+(new Date()).getTime());
|
$("#showvercode").attr("src","homeController/getNewVerCode.do?s="+(new Date()).getTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
function showAlert(text){
|
||||||
|
finishLogin();
|
||||||
|
$("#alertbox").addClass("alert");
|
||||||
|
$("#alertbox").addClass("alert-danger");
|
||||||
|
$("#alertbox").text(text);
|
||||||
|
}
|
||||||
|
|
||||||
|
function startLogin(){
|
||||||
|
$("#loginBtn").attr('disabled','disabled');
|
||||||
|
$("#accountid").attr('disabled','disabled');
|
||||||
|
$("#accountpwd").attr('disabled','disabled');
|
||||||
|
$("#vercode").attr('disabled','disabled');
|
||||||
|
$("#loginBtn").val('正在登录...');
|
||||||
|
}
|
||||||
|
|
||||||
|
function finishLogin(){
|
||||||
|
$("#loginBtn").removeAttr('disabled');
|
||||||
|
$("#accountid").removeAttr('disabled');
|
||||||
|
$("#accountpwd").removeAttr('disabled');
|
||||||
|
$("#vercode").removeAttr('disabled');
|
||||||
|
$("#loginBtn").val('登录');
|
||||||
}
|
}
|
||||||
|
|
@ -0,0 +1,145 @@
|
||||||
|
/**
|
||||||
|
* For signup.html
|
||||||
|
*/
|
||||||
|
$(function(){
|
||||||
|
// 回车键快捷操作
|
||||||
|
$("body").keypress(function(e) {
|
||||||
|
var keyCode = e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
|
||||||
|
if (keyCode == 13) {
|
||||||
|
var g = $("#signupBtn").click();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
$("#accountid").focus();//再自动聚焦账户输入框
|
||||||
|
})
|
||||||
|
|
||||||
|
//获取一个新的验证码
|
||||||
|
function getNewVerCode(){
|
||||||
|
$("#showvercode").attr("src","homeController/getNewVerCode.do?s="+(new Date()).getTime());
|
||||||
|
}
|
||||||
|
|
||||||
|
//执行注册过程
|
||||||
|
function doSignUp(){
|
||||||
|
// 还原提示状态
|
||||||
|
$("#accountidbox,#accountpwdbox,#repaccountpwdbox").removeClass("has-error");
|
||||||
|
$("#alertbox").removeClass("show");
|
||||||
|
$("#alertbox").addClass("hidden");
|
||||||
|
var accountId = $("#accountid").val();
|
||||||
|
var accountPwd = $("#accountpwd").val();
|
||||||
|
var repAccountPwd = $("#repaccountpwd").val();
|
||||||
|
// 输入非空检查
|
||||||
|
if (accountId.length == 0) {
|
||||||
|
$("#accountidbox").addClass("has-error");
|
||||||
|
$("#accountid").focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (accountPwd.length == 0) {
|
||||||
|
$("#accountpwdbox").addClass("has-error");
|
||||||
|
$("#accountpwd").focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (repAccountPwd.length == 0) {
|
||||||
|
$("#repaccountpwdbox").addClass("has-error");
|
||||||
|
$("#repaccountpwd").focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 确认密码检查
|
||||||
|
$("#accountid,#accountpwd,#repaccountpwd,#signupBtn,#vercode").attr('disabled', true);
|
||||||
|
if (accountPwd+"" != repAccountPwd+"") {
|
||||||
|
showAlert("提示:两次输入的新密码不一致,请检查确认");
|
||||||
|
$("#accountpwdbox").addClass("has-error");
|
||||||
|
$("#repaccountpwdbox").addClass("has-error");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
// 以加密方式发送修改密码请求
|
||||||
|
$.ajax({
|
||||||
|
url : 'homeController/getPublicKey.ajax',
|
||||||
|
type : 'POST',
|
||||||
|
data : {},
|
||||||
|
dataType : 'text',
|
||||||
|
success : function(result) {
|
||||||
|
// 获取公钥
|
||||||
|
var signup_publicKeyInfo=eval("("+result+")");
|
||||||
|
// 生成JSON对象格式的信息
|
||||||
|
var signUpInfo = '{account:"' + accountId + '",pwd:"'
|
||||||
|
+ accountPwd + '",time:"' + signup_publicKeyInfo.time + '"}';
|
||||||
|
var encrypt = new JSEncrypt();// 加密插件对象
|
||||||
|
encrypt.setPublicKey(signup_publicKeyInfo.publicKey);// 设置公钥
|
||||||
|
var encrypted = encrypt.encrypt(signUpInfo);// 进行加密
|
||||||
|
sendSignUpInfo(encrypted);
|
||||||
|
},
|
||||||
|
error : function() {
|
||||||
|
showAlert("提示:注册失败,请检查网络链接或服务器运行状态");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将加密数据发送至服务器并显示操作结果
|
||||||
|
function sendSignUpInfo(encrypted){
|
||||||
|
$.ajax({
|
||||||
|
type : "POST",
|
||||||
|
dataType : "text",
|
||||||
|
url : "homeController/doSigUp.ajax",
|
||||||
|
data : {
|
||||||
|
encrypted : encrypted,
|
||||||
|
vercode : $("#vercode").val()
|
||||||
|
},
|
||||||
|
success : function(result) {
|
||||||
|
switch (result) {
|
||||||
|
case "success":
|
||||||
|
$("#accountidbox,#accountpwdbox,#repaccountpwdbox").removeClass("has-error");
|
||||||
|
window.location.href = "/home.html";
|
||||||
|
break;
|
||||||
|
case "illegal":
|
||||||
|
showAlert("提示:注册功能已被禁用,请求被拒绝");
|
||||||
|
break;
|
||||||
|
case "accountexists":
|
||||||
|
showAlert("提示:该账户名已存在,请使用其他账户名进行注册");
|
||||||
|
$("#accountidbox").addClass("has-error");
|
||||||
|
break;
|
||||||
|
case "needvercode":
|
||||||
|
$("#accountid,#accountpwd,#repaccountpwd,#signupBtn,#vercode").attr('disabled', false);
|
||||||
|
$("#vercodebox").removeClass("hidden");
|
||||||
|
$("#vercodebox").addClass("show");
|
||||||
|
getNewVerCode();
|
||||||
|
break;
|
||||||
|
case "invalidaccount":
|
||||||
|
showAlert("提示:注册失败,账户名不合法。账户名的长度需为3-32个字符,且仅支持ISO-8859-1中的字符(推荐使用英文字母、英文符号及阿拉伯数字)。");
|
||||||
|
$("#accountidbox").addClass("has-error");
|
||||||
|
break;
|
||||||
|
case "illegalaccount":
|
||||||
|
showAlert("提示:注册失败,账户名中不得包含“=”或“:”,且首个字符不能为“#”。");
|
||||||
|
$("#accountidbox").addClass("has-error");
|
||||||
|
break;
|
||||||
|
case "mustlogout":
|
||||||
|
showAlert("提示:您已经登入了一个账户,请先注销后再执行本操作");
|
||||||
|
break;
|
||||||
|
case "invalidpwd":
|
||||||
|
showAlert("提示:注册失败,密码格式不正确。密码的长度需为3-32个字符,且仅支持ISO-8859-1中的字符(推荐使用英文字母、英文符号及阿拉伯数字)。");
|
||||||
|
$("#accountpwdbox").addClass("has-error");
|
||||||
|
$("#repaccountpwdbox").addClass("has-error");
|
||||||
|
break;
|
||||||
|
case "error":
|
||||||
|
showAlert("提示:注册失败,注册请求无法通过加密效验(可能是请求耗时过长导致的)");
|
||||||
|
break;
|
||||||
|
case "cannotsignup":
|
||||||
|
showAlert("提示:注册失败,发生意外错误,请稍后重试或联系管理员");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
showAlert("提示:注册失败,发生未知错误");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error : function() {
|
||||||
|
showAlert("提示:注册失败,请检查网络链接或服务器运行状态");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 显示修改密码错误提示
|
||||||
|
function showAlert(txt) {
|
||||||
|
$("#accountid,#accountpwd,#repaccountpwd,#signupBtn,#vercode").attr('disabled', false);
|
||||||
|
$("#alertbox").removeClass("hidden");
|
||||||
|
$("#alertbox").addClass("show");
|
||||||
|
$("#alertbox").text(txt);
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -67,24 +67,26 @@ See https://github.com/adobe-type-tools/cmap-resources
|
||||||
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70);
|
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=70);
|
||||||
}
|
}
|
||||||
|
|
||||||
@-webkit-keyframes zoom {
|
@
|
||||||
from {
|
-webkit-keyframes zoom {from { -webkit-transform:scale(0)
|
||||||
-webkit-transform:scale(0)
|
|
||||||
}
|
|
||||||
to {
|
|
||||||
-webkit-transform: scale(1)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes zoom {
|
to {
|
||||||
from {
|
-webkit-transform: scale(1)
|
||||||
transform:scale(0)
|
|
||||||
}
|
|
||||||
to {
|
|
||||||
transform: scale(1)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
@
|
||||||
|
keyframes zoom {from { transform:scale(0)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
transform: scale(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
.pdf-modal-body {
|
.pdf-modal-body {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|
@ -540,24 +542,29 @@ See https://github.com/adobe-type-tools/cmap-resources
|
||||||
//增加了加载需要耗时转换的文档时的加载提示
|
//增加了加载需要耗时转换的文档时的加载提示
|
||||||
window.onload = function() {
|
window.onload = function() {
|
||||||
var url = location.search;
|
var url = location.search;
|
||||||
if (url.indexOf(".block") < 0) {
|
if (url.indexOf("getResource") < 0) {
|
||||||
var modal = document.getElementById('pdf-modal');
|
var modal = document.getElementById('pdf-modal');
|
||||||
if (url.indexOf("getWordView") >= 0) {
|
if (url.indexOf("getWordView") >= 0) {
|
||||||
document.getElementById('doc-type-box').innerHTML="Word";
|
document.getElementById('doc-type-box').innerHTML = "Word";
|
||||||
}else if(url.indexOf("getTxtView") >= 0){
|
} else if (url.indexOf("getTxtView") >= 0) {
|
||||||
document.getElementById('doc-type-box').innerHTML="TXT";
|
document.getElementById('doc-type-box').innerHTML = "TXT";
|
||||||
}else if(url.indexOf("getPPTView") >= 0){
|
} else if (url.indexOf("getPPTView") >= 0) {
|
||||||
document.getElementById('doc-type-box').innerHTML="PPT";
|
document.getElementById('doc-type-box').innerHTML = "PPT";
|
||||||
}else{
|
} else {
|
||||||
document.getElementById('doc-type-box').innerHTML="未知类型";
|
document.getElementById('doc-type-box').innerHTML = "未知类型";
|
||||||
}
|
}
|
||||||
modal.style.display = "block";
|
modal.style.display = "block";
|
||||||
var interval = setInterval(function() {
|
var interval = setInterval(
|
||||||
if (PDFViewerApplication.pdfDocument != null) {
|
function() {
|
||||||
clearInterval(interval);
|
if (PDFViewerApplication.pdfDocument != null
|
||||||
modal.style.display = "none";
|
|| PDFViewerApplication.appConfig.errorWrapper.container.hidden == false) {
|
||||||
}
|
clearInterval(interval);
|
||||||
}, 1);
|
modal.style.display = "none";
|
||||||
|
if (PDFViewerApplication.appConfig.errorWrapper.container.hidden == false) {
|
||||||
|
alert("提示:打开目标文档时发生意外错误(刷新页面将再次尝试打开该文档)。");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<base href="/">
|
||||||
|
<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">
|
||||||
|
<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" />
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="js/html5shiv.min.js"></script>
|
||||||
|
<script src="js/respond.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
</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>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<h2 class="centerText">
|
||||||
|
<span class="glyphicon glyphicon-exclamation-sign"
|
||||||
|
aria-hidden="true"></span>错误:拒绝访问!
|
||||||
|
</h2>
|
||||||
|
<br />
|
||||||
|
<h4 class="centerText">您无权访问该服务器,请求已经被阻止。如有疑问请联系管理员。</h4>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
|
||||||
|
<script type="text/javascript" src="js/bootstrap.min.js"></script>
|
||||||
|
</html>
|
||||||
|
|
@ -66,6 +66,11 @@
|
||||||
<div id="alertbox" role="alert"></div>
|
<div id="alertbox" role="alert"></div>
|
||||||
<input id="loginBtn" class="form-control btn-success"
|
<input id="loginBtn" class="form-control btn-success"
|
||||||
type="button" value="登录" onclick="dologin()"> <br />
|
type="button" value="登录" onclick="dologin()"> <br />
|
||||||
|
<div id="signupBox" class="hidden">
|
||||||
|
<input class="form-control btn-info"
|
||||||
|
type="button" value="立即注册"
|
||||||
|
onclick="window.location.href = '/prv/signup.html'"> <br />
|
||||||
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,91 @@
|
||||||
|
<!doctype html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<base href="/">
|
||||||
|
<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" />
|
||||||
|
<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" />
|
||||||
|
<!--[if lt IE 9]>
|
||||||
|
<script src="js/html5shiv.min.js"></script>
|
||||||
|
<script src="js/respond.min.js"></script>
|
||||||
|
<![endif]-->
|
||||||
|
</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>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6 col-md-offset-3">
|
||||||
|
<p class="centerText" style="font-size: 30px; color: #4D4D4D">
|
||||||
|
<strong>欢迎注册新账户</strong>
|
||||||
|
</p>
|
||||||
|
<p class="centerText" style="font-size: 18px; color: #9C9C9C">
|
||||||
|
<span class="glyphicon glyphicon-log-in"></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>
|
||||||
|
<div class="form-group" id="repaccountpwdbox">
|
||||||
|
<label for="accountpwd" id="repaccountpwdtitle"
|
||||||
|
class="col-sm-3 control-label">确认密码:</label>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<input type="password" class="form-control" id="repaccountpwd"
|
||||||
|
placeholder="请再次输入新账户的密码……">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
<div id="vercodebox" class="form-group hidden"><label class='col-sm-5'><img id='showvercode' class='vercodeimg' alt='点击获取验证码' src='' onclick='getNewVerCode()'></label><div class='col-sm-7'><input type='text' class='form-control' id='vercode' placeholder='请输入验证码进行验证……'></div></div>
|
||||||
|
<div id="alertbox" role="alert" class="alert alert-danger hidden"></div>
|
||||||
|
<input id="signupBtn" class="form-control btn-primary"
|
||||||
|
type="button" value="立即注册" onclick="doSignUp()"> <br />
|
||||||
|
<input class="form-control btn-danger" type="button" value="返回"
|
||||||
|
onclick="window.location.href = '/home.html'"> <br />
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
<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/jsencrypt.min.js"></script>
|
||||||
|
<script type="text/javascript" src="js/signup.js"></script>
|
||||||
|
</html>
|
||||||
|
|
@ -5,10 +5,10 @@ var tReq;
|
||||||
var tTimer;
|
var tTimer;
|
||||||
var pingInt;
|
var pingInt;
|
||||||
$(function() {
|
$(function() {
|
||||||
window.onresize = function(){
|
window.onresize = function() {
|
||||||
showCloseBtn();
|
showCloseBtn();
|
||||||
}
|
}
|
||||||
pingInt = setInterval("ping()",60000);
|
pingInt = setInterval("ping()", 60000);
|
||||||
var fileId = getFileId();
|
var fileId = getFileId();
|
||||||
$
|
$
|
||||||
.ajax({
|
.ajax({
|
||||||
|
|
@ -21,7 +21,7 @@ $(function() {
|
||||||
success : function(result) {
|
success : function(result) {
|
||||||
if (result != "ERROR") {
|
if (result != "ERROR") {
|
||||||
f = eval("(" + result + ")");
|
f = eval("(" + result + ")");
|
||||||
$("#vname").text(f.fileName.replace('\'',''').replace('<','<').replace('>','>'));
|
$("#vname").text(f.fileName);
|
||||||
$("#vcreator").text(f.fileCreator);
|
$("#vcreator").text(f.fileCreator);
|
||||||
$("#vcdate").text(f.fileCreationDate);
|
$("#vcdate").text(f.fileCreationDate);
|
||||||
$("#vsize").text(f.fileSize);
|
$("#vsize").text(f.fileSize);
|
||||||
|
|
@ -59,9 +59,9 @@ function playVideo() {
|
||||||
$("#playerbox")
|
$("#playerbox")
|
||||||
.html(
|
.html(
|
||||||
"<video id='kiftplayer' class='video-js col-md-12' controls preload='auto' height='500'>"
|
"<video id='kiftplayer' class='video-js col-md-12' controls preload='auto' height='500'>"
|
||||||
+ "<source src='resourceController/getResource.do?fid="
|
+ "<source src='resourceController/getResource/"
|
||||||
+ f.fileId + "' type='video/mp4'></video>");
|
+ f.fileId + "' type='video/mp4'></video>");
|
||||||
var player = videojs('kiftplayer',{
|
var player = videojs('kiftplayer', {
|
||||||
preload : 'auto'
|
preload : 'auto'
|
||||||
});
|
});
|
||||||
player.ready(function() {
|
player.ready(function() {
|
||||||
|
|
@ -71,10 +71,10 @@ function playVideo() {
|
||||||
|
|
||||||
// 关闭当前窗口并释放播放器
|
// 关闭当前窗口并释放播放器
|
||||||
function reMainPage() {
|
function reMainPage() {
|
||||||
if(tReq != null){
|
if (tReq != null) {
|
||||||
tReq.abort()
|
tReq.abort()
|
||||||
}
|
}
|
||||||
if(tTimer != null){
|
if (tTimer != null) {
|
||||||
window.clearTimeout(tTimer);
|
window.clearTimeout(tTimer);
|
||||||
}
|
}
|
||||||
window.opener = null;
|
window.opener = null;
|
||||||
|
|
@ -84,7 +84,7 @@ function reMainPage() {
|
||||||
|
|
||||||
// 进行转码请求并监听进度状态(轮询)
|
// 进行转码请求并监听进度状态(轮询)
|
||||||
function doTranscode() {
|
function doTranscode() {
|
||||||
tReq=$.ajax({
|
tReq = $.ajax({
|
||||||
url : 'resourceController/getVideoTranscodeStatus.ajax',
|
url : 'resourceController/getVideoTranscodeStatus.ajax',
|
||||||
type : 'POST',
|
type : 'POST',
|
||||||
dataType : 'text',
|
dataType : 'text',
|
||||||
|
|
@ -99,7 +99,7 @@ function doTranscode() {
|
||||||
reMainPage();
|
reMainPage();
|
||||||
} else {
|
} else {
|
||||||
$("#transcodeProgress").text(result);
|
$("#transcodeProgress").text(result);
|
||||||
tTimer=setTimeout('doTranscode()', 500);// 每隔1秒询问一次进度
|
tTimer = setTimeout('doTranscode()', 500);// 每隔1秒询问一次进度
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error : function() {
|
error : function() {
|
||||||
|
|
@ -109,28 +109,28 @@ function doTranscode() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function showCloseBtn(){
|
function showCloseBtn() {
|
||||||
var win = $(window).width();
|
var win = $(window).width();
|
||||||
if(win < 450){
|
if (win < 450) {
|
||||||
$("#closeBtn").addClass("hidden");
|
$("#closeBtn").addClass("hidden");
|
||||||
}else{
|
} else {
|
||||||
$("#closeBtn").removeClass("hidden");
|
$("#closeBtn").removeClass("hidden");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//防止播放视频时会话超时的应答器,每分钟应答一次
|
// 防止播放视频时会话超时的应答器,每分钟应答一次
|
||||||
function ping(){
|
function ping() {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url:"homeController/ping.ajax",
|
url : "homeController/ping.ajax",
|
||||||
type:"POST",
|
type : "POST",
|
||||||
dataType:"text",
|
dataType : "text",
|
||||||
data:{},
|
data : {},
|
||||||
success:function(result){
|
success : function(result) {
|
||||||
if(result != 'pong'){
|
if (result != 'pong') {
|
||||||
window.clearInterval(pingInt);
|
window.clearInterval(pingInt);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error:function(){
|
error : function() {
|
||||||
window.clearInterval(pingInt);
|
window.clearInterval(pingInt);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -1 +1 @@
|
||||||
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",{preload:"auto"});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")}function ping(){$.ajax({url:"homeController/ping.ajax",type:"POST",dataType:"text",data:{},success:function(a){"pong"!=a&&window.clearInterval(pingInt)},error:function(){window.clearInterval(pingInt)}})}var tReq,tTimer,pingInt;$(function(){window.onresize=function(){showCloseBtn()},pingInt=setInterval("ping()",6e4);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.replace("'","'").replace("<","<").replace(">",">")),$("#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()}})});
|
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/"+f.fileId+"' type='video/mp4'></video>");var a=videojs("kiftplayer",{preload:"auto"});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")}function ping(){$.ajax({url:"homeController/ping.ajax",type:"POST",dataType:"text",data:{},success:function(a){"pong"!=a&&window.clearInterval(pingInt)},error:function(){window.clearInterval(pingInt)}})}var tReq,tTimer,pingInt;$(function(){window.onresize=function(){showCloseBtn()},pingInt=setInterval("ping()",6e4);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()}})});
|
||||||
4
使用许可
4
使用许可
|
|
@ -1,13 +1,13 @@
|
||||||
kiftd 使用许可
|
kiftd 使用许可
|
||||||
|
|
||||||
Copyright © 2019 青阳龙野 <kohgylw@163.com>
|
Copyright © 2018-2020 青阳龙野 <kohgylw@163.com>
|
||||||
|
|
||||||
使用、分发或修改kiftd及其程序的源代码均代表您接受如下条款:
|
使用、分发或修改kiftd及其程序的源代码均代表您接受如下条款:
|
||||||
1,任何组织或个人均能够自由、无偿地获得kiftd发行版及其源代码的原版拷贝,并对其享有无限制使用的权利——无论是商业性的还是非商业性的。
|
1,任何组织或个人均能够自由、无偿地获得kiftd发行版及其源代码的原版拷贝,并对其享有无限制使用的权利——无论是商业性的还是非商业性的。
|
||||||
2,任何组织或个人均能够自由复制、分发或修改kiftd发行版及其源代码,并将其用于任何用途。修改后的作品版权由修改者自身享有。
|
2,任何组织或个人均能够自由复制、分发或修改kiftd发行版及其源代码,并将其用于任何用途。修改后的作品版权由修改者自身享有。
|
||||||
3,kiftd的作者无需为使用该软件及其源代码所造成的任何直接或间接后果承担责任。
|
3,kiftd的作者无需为使用该软件及其源代码所造成的任何直接或间接后果承担责任。
|
||||||
4,kiftd的作者对kiftd中的全部java源代码、页面文件、js及css文件、jar程序、mybatisResource文件夹内的资源、README.md文件以及随发行版程序附带的原版《kiftd说明文档》享有版权,并作为kiftd软件的版权人。
|
4,kiftd的作者对kiftd中的全部java源代码、页面文件、js及css文件、jar程序、mybatisResource文件夹内的资源、README.md文件以及随发行版程序附带的原版《kiftd说明文档》享有版权,并作为kiftd软件的版权人。
|
||||||
5,kiftd软件中涉及的所有第三方软件、工具、图片、插件及其代码,其权利由该资源之作者享有并授予kiftd使用许可。任何单位和个人认为kiftd包含的上述内容可能涉嫌侵犯其合法权益时,应及时向kiftd作者进行书面反馈,并提供其身份证明、权属证明及详细侵权情况的说明,kiftd将会立即移除被控侵权的内容。
|
5,kiftd软件中涉及的所有第三方软件、工具、图片、插件及其代码,其权利由该作品的权利人享有并授予kiftd使用许可。任何单位和个人认为kiftd包含的上述内容可能涉嫌侵犯其合法权益时,应及时向kiftd作者进行书面反馈,并提供其身份证明、权属证明及详细侵权情况的说明,kiftd将会立即移除被控侵权的内容。
|
||||||
|
|
||||||
版权人信息:
|
版权人信息:
|
||||||
地址:河北省唐山市路北区兴源里玫瑰庄园6单元602号
|
地址:河北省唐山市路北区兴源里玫瑰庄园6单元602号
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue