Compare commits

...

22 Commits
3.2 ... 3.2.1

Author SHA1 Message Date
zhaojun
2ec8a5df1f fix(bug): 修复 sharepoint 未自动刷新 accessToken 和 refreshToken 的 bug 2022-02-02 20:50:13 +08:00
zhaojun
47b5f6ac12 🔖 发布 3.2.1 版本 2022-02-02 20:46:45 +08:00
zhaojun
c64c8465f2 fix(bug): 升级相关有漏洞的依赖版本为最新版 2022-02-02 20:46:08 +08:00
zhaojun
f636681dd8 fix(bug): 修复本地存储可通过特殊命令访问到非指定目录的文件 2022-02-02 20:45:05 +08:00
赵俊
eadd2434e0 新增 ZFILE 社区地址 2021-10-30 21:05:11 +08:00
赵俊
b84c0bff42 Merge remote-tracking branch 'origin/master' 2021-10-07 17:53:19 +08:00
赵俊
4cb5b84bfe 🐛 修复 S3 协议无法正常保存的 BUG 2021-10-07 17:52:45 +08:00
赵俊
0351b4401c Merge pull request #286 from pippen57/master
转义SQL关键字, 防止创建表时出现错误
2021-09-25 18:29:42 +08:00
pippen
48cb14be8a 转义SQL关键字, 防止创建表时出现错误 2021-09-25 12:48:31 +08:00
赵俊
eea2ff11f9 ✏️ 修改文档拼写错误 2021-09-21 11:22:00 +08:00
赵俊
325ec1a348 对于因前端 vue history 路由模式下, 直接访问路径时, 出现的 404 响应码, 转化为 200 响应码. (404 下会将请求转发到首页) 2021-09-20 17:06:27 +08:00
赵俊
93205266d3 更新文档 2021-09-20 16:35:30 +08:00
赵俊
6849a4347f 去除自定义 404 错误页面 2021-09-20 16:33:54 +08:00
赵俊
cb5c6a5945 🎨 提交前端页面 2021-09-20 16:33:31 +08:00
赵俊
5ed45c3bb3 🔒 修复因升级 springboot 版本导致的安全和兼容问题 2021-09-20 16:20:25 +08:00
赵俊
4442ec3165 修复因前端 vue history 路由模式下, 直接访问路径时, 请求 /admin/ 下的路由会被权限框架拦截并校验登陆状态, 导致静态页面报错问题. 2021-09-20 16:19:21 +08:00
赵俊
b268a24333 修复因前端 vue history 路由模式下, 直接访问路径时, 接口和路径名冲突问题 2021-09-20 16:17:59 +08:00
赵俊
84f9354d4e 对于因前端 vue history 路由模式下, 直接访问路径时, 出现的 404 响应码, 转化为 200 响应码. (404 下会将请求转发到首页) 2021-09-20 16:17:16 +08:00
赵俊
8dfc4f8004 跨域请求过滤器修改为自注解注册方式 2021-09-20 16:14:45 +08:00
赵俊
1158f5c2b9 🐛 修复 OneDrive 加速域名在直链下未生效的 BUG 2021-09-20 11:18:13 +08:00
赵俊
c5f0e15207 🐛 修复因升级 spring boot 后部分参数过时, 导致的第一次启动无法初始化参数的 BUG 2021-09-19 21:33:07 +08:00
赵俊
68a842ce75 🐛 修复页面路径和接口地址冲突的 BUG 2021-09-19 16:08:19 +08:00
22 changed files with 65 additions and 258 deletions

View File

@@ -16,7 +16,7 @@ assignees: ''
请确认你已经做了下面这些事情,若 bug 还是未解决,那么请尽可详细地描述你的问题。
- 我已经安装了最新版的 ZFile
- 我已经阅读了 ZFile 的文档http://docs.zhaojun.im/zfile
- 我已经阅读了 ZFile 的文档https://docs.zfile.vip
- 我已经搜索了已有的 Issues 列表中有关的信息
- 我已经清理过浏览器缓存并重试
-->

View File

@@ -19,9 +19,11 @@
## 相关地址
预览地址: [https://zfile.jun6.net](https://zfile.jun6.net)
预览地址: [https://zfile.vip](https://zfile.vip)
文档地址: [http://docs.zhaojun.im/zfile](http://docs.zhaojun.im/zfile)
文档地址: [https://docs.zfile.vip](https://docs.zfile.vip)
社区地址: [https://bbs.zfile.vip](https://bbs.zfile.vip)
项目源码: [https://github.com/zhaojun1998/zfile](https://github.com/zhaojun1998/zfile)
@@ -69,14 +71,14 @@ apt update && apt install -y adoptopenjdk-8-hotspot-jre
> 如为更新程序, 则请先执行 `~/zfile/bin/stop.sh && rm -rf ~/zfile` 清理旧程序. 首次安装请忽略此选项.
下载项目:
```bash
cd ~
export ZFILE_INSTALL_PATH=~/zfile
mkdir -p $ZFILE_INSTALL_PATH && cd $ZFILE_INSTALL_PATH
wget https://c.jun6.net/ZFILE/zfile-release.war
mkdir zfile && unzip zfile-release.war -d zfile && rm -rf zfile-release.war
chmod +x zfile/bin/*.sh
unzip zfile-release.war && rm -rf zfile-release.war
chmod +x $ZFILE_INSTALL_PATH/bin/*.sh
```
> 下载指定版本可以将 `zfile-release.war` 改为 `zfile-x.x.war`,如 `zfile-2.2.war`。
@@ -98,7 +100,7 @@ chmod +x zfile/bin/*.sh
~/zfile/bin/start.sh
```
篇幅有限, 更详细的安装教程及介绍请参考: [ZFile 文档](http://docs.zhaojun.im/zfile)
篇幅有限, 更详细的安装教程及介绍请参考: [ZFile 文档](https://docs.zfile.vip)
访问地址:
@@ -120,29 +122,6 @@ chmod +x zfile/bin/*.sh
![后台设置-新增驱动器](https://cdn.jun6.net/2021/03/23/e70e04f8cc5b6.png)
![后台设置-站点设置](https://cdn.jun6.net/2021/03/23/fd946991bb6b9.png)
## 开发计划
- [x] API 支持 [点击查看文档](https://github.com/zhaojun1998/zfile/blob/master/API.md)
- [x] 更方便的部署方式
- [x] 布局优化 - 自定义操作按钮 (现为右键实现)
- [x] 后台优化 - 设置按照其功能进行分离
- [x] 体验优化 - 支持前后端分离部署
- [x] 体验优化 - 文本预览更换 vscode 同款编辑器 monaco editor
- [x] 架构调整 - 支持多存储策略
- [x] 体验优化 - 忽略文件列表 (正则表达式)
- [x] 新功能 - Docker 支持
- [x] 新功能 - 图片模式
- [x] 新功能 - 直链/短链管理
- [ ] ~~新功能 - 后台支持上传、编辑、删除等操作 (不再支持)~~
- [ ] 体验优化 - 自定义支持预览的文件后缀 (正则表达式)
- [ ] 体验优化 - 一键安装脚本
- [ ] 新功能 - 分享功能,支持分享密码,文件夹分享
- [ ] 新功能 - 直链支持 Referer 防盗链
- [ ] 体验优化 - 视频列表支持
- [ ] 新功能 - 单独页面打开文件预览
- [ ] 新功能 - 在线查看日志功能
- [ ] 部署优化 - Docker Compose 支持
## 支持作者
如果本项目对你有帮助,请作者喝杯咖啡吧。
@@ -153,10 +132,6 @@ chmod +x zfile/bin/*.sh
[![starcharts stargazers over time](https://starchart.cc/zhaojun1998/zfile.svg)](https://starchart.cc/zhaojun1998/zfile.svg)
## 服务器赞助
<a href="https://kuline.cn"><img src="https://cdn.jun6.net/2021/05/14/1f6a4f0ad09ce.png" width="100px"></a>
## 开发工具赞助
<a href="https://www.jetbrains.com/?from=zfile"><img src="https://cdn.jun6.net/2021/04/21/26e410d60b0b0.png?1=1" width="100px"></a>

10
pom.xml
View File

@@ -12,13 +12,14 @@
<groupId>im.zhaojun</groupId>
<artifactId>zfile</artifactId>
<version>3.2</version>
<version>3.2.1</version>
<name>zfile</name>
<packaging>war</packaging>
<description>一个在线的文件浏览系统</description>
<properties>
<java.version>1.8</java.version>
<log4j2.version>2.17.1</log4j2.version>
</properties>
<dependencies>
@@ -56,11 +57,13 @@
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
<version>1.4.197</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>8.0.27</version>
</dependency>
<!-- 工具类 -->
@@ -84,7 +87,6 @@
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.8</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
@@ -108,7 +110,7 @@
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.61</version>
<version>1.2.69</version>
</dependency>
@@ -149,4 +151,4 @@
</plugins>
</build>
</project>
</project>

View File

@@ -1 +1 @@
package im.zhaojun.zfile.config;
package im.zhaojun.zfile.config;

View File

@@ -42,8 +42,10 @@ public class WebMvcConfig implements WebMvcConfigurer {
public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer(){
return factory -> {
ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/index.html");
ErrorPage error200Page = new ErrorPage(HttpStatus.OK, "/index.html");
Set<ErrorPage> errorPages = new HashSet<>();
errorPages.add(error404Page);
errorPages.add(error200Page);
factory.setErrorPages(errorPages);
};
}

View File

@@ -39,12 +39,4 @@ public class ZFileConfiguration {
return restTemplate;
}
@Bean
public FilterRegistrationBean filterRegist() {
FilterRegistrationBean frBean = new FilterRegistrationBean();
frBean.setFilter(new CorsFilter());
frBean.addUrlPatterns("/*");
return frBean;
}
}

View File

@@ -1 +1 @@
package im.zhaojun.zfile.controller.admin;
package im.zhaojun.zfile.controller.admin;

View File

@@ -30,7 +30,7 @@ public class InstallController {
}
@PostMapping("/install")
@PostMapping("/doInstall")
public ResultBean install(SystemConfigDTO systemConfigDTO) {
if (!StringUtils.isEmpty(systemConfigService.getAdminUsername())) {
return ResultBean.error("请勿重复初始化.");

View File

@@ -1,6 +1,8 @@
package im.zhaojun.zfile.filter;
import org.springframework.core.annotation.Order;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Component;
import org.springframework.web.cors.CorsUtils;
import org.springframework.web.filter.GenericFilterBean;
@@ -8,6 +10,7 @@ import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@@ -16,6 +19,9 @@ import java.io.IOException;
* 开启跨域支持. 一般用于开发环境, 或前后端分离部署时开启.
* @author zhaojun
*/
@Order(1)
@WebFilter(value = "/*")
@Component
public class CorsFilter extends GenericFilterBean {
@Override

View File

@@ -0,0 +1 @@
package im.zhaojun.zfile.filter;

View File

@@ -48,4 +48,6 @@ public class StorageStrategyConfig {
private String proxyDomain;
private String region;
}

View File

@@ -2,10 +2,7 @@ package im.zhaojun.zfile.model.entity;
import lombok.Data;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.*;
import java.util.Date;
@Entity(name = "SHORT_LINK")
@@ -16,6 +13,7 @@ public class ShortLinkConfig {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(name = "`key`")
private String key;
private String url;

View File

@@ -40,6 +40,9 @@ public class OneDriveTokenRefreshSchedule {
List<DriveConfig> driveConfigList = driveConfigService.findByType(StorageTypeEnum.ONE_DRIVE);
driveConfigList.addAll(driveConfigService.findByType(StorageTypeEnum.ONE_DRIVE_CHINA));
driveConfigList.addAll(driveConfigService.findByType(StorageTypeEnum.SHAREPOINT_DRIVE));
driveConfigList.addAll(driveConfigService.findByType(StorageTypeEnum.SHAREPOINT_DRIVE_CHINA));
driveConfigList.forEach(driveConfig -> {
try {

View File

@@ -216,7 +216,11 @@ public abstract class MicrosoftDriveServiceBase extends AbstractBaseFileService
fileItemDTO.setTime(fileItem.getDate("lastModifiedDateTime"));
if (fileItem.containsKey(ONE_DRIVE_FILE_FLAG)) {
fileItemDTO.setUrl(fileItem.getString("@microsoft.graph.downloadUrl"));
String originUrl = fileItem.getString("@microsoft.graph.downloadUrl");
if (StringUtils.isNotNullOrEmpty(proxyDomain)) {
originUrl = StringUtils.replaceHost(originUrl, proxyDomain);
}
fileItemDTO.setUrl(originUrl);
fileItemDTO.setType(FileTypeEnum.FILE);
} else {
fileItemDTO.setType(FileTypeEnum.FOLDER);

View File

@@ -1,5 +1,6 @@
package im.zhaojun.zfile.service.impl;
import cn.hutool.core.util.StrUtil;
import im.zhaojun.zfile.exception.InitializeDriveException;
import im.zhaojun.zfile.exception.NotExistFileException;
import im.zhaojun.zfile.model.constant.StorageConfigConstant;
@@ -25,6 +26,7 @@ import javax.annotation.Resource;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -72,6 +74,9 @@ public class LocalServiceImpl extends AbstractBaseFileService implements BaseFil
@Override
public List<FileItemDTO> fileList(String path) throws FileNotFoundException {
if (StrUtil.startWith(path, "..")) {
return Collections.emptyList();
}
List<FileItemDTO> fileItemList = new ArrayList<>();
String fullPath = StringUtils.removeDuplicateSeparator(filePath + path);

View File

@@ -35,7 +35,8 @@ server:
servlet:
context-path: ''
tomcat:
max-threads: 20
threads:
max: 20
compression:
enabled: true
@@ -47,13 +48,6 @@ spring:
path: /h2-console
enabled: ${zfile.debug}
datasource:
# 初始化数据导入
data: classpath*:db/data.sql
sql-script-encoding: utf-8
initialization-mode: always
continue-on-error: true
# h2 内存数据库 配置
driver-class-name: org.h2.Driver
url: jdbc:h2:${zfile.db.path}
@@ -75,5 +69,15 @@ spring:
hibernate:
format_sql: false
show-sql: false
generate-ddl: true
defer-datasource-initialization: true
profiles:
active: prod
active: prod
# 初始化数据导入
sql:
init:
continue-on-error: true
mode: always
data-locations: classpath*:db/data.sql
encoding: utf-8

View File

@@ -1 +1 @@
.zfile-admin-index[data-v-77a86734]{height:100%;overflow-y:hidden}.zfile-admin-top[data-v-77a86734]{background-color:#001529}.zfile-admin-top-logo[data-v-77a86734]{cursor:pointer;height:100%;line-height:61px;color:#fff;padding-right:20px}.zfile-admin-top-logo[data-v-77a86734]:hover{color:#1890ff}.zfile-admin-top-content[data-v-77a86734]{display:-webkit-box;display:-ms-flexbox;display:flex;margin:auto;max-width:1200px}.zfile-admin-content[data-v-77a86734]{background-color:#f0f2f5;height:100%;overflow-y:auto}.zfile-admin-content-view[data-v-77a86734]{margin:auto;max-width:1200px;margin-top:50px;margin-bottom:100px}.el-menu--horizontal>.el-menu-item.is-active[data-v-77a86734]{color:#1890ff!important}.el-menu--horizontal>.el-menu-item[data-v-77a86734],.el-menu.el-menu--horizontal[data-v-77a86734]{border:none}.zfile-admin-index-version-info[data-v-77a86734],.zfile-admin-index-version-info[data-v-77a86734] .el-link--inner{font-size:13px}.zfile-login[data-v-834c542c]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.zfile-login-title[data-v-834c542c]{text-align:center;vertical-align:text-bottom;font-size:30px;font-weight:600;color:red;background-image:linear-gradient(-20deg,#6e45e2,#88d3ce);-webkit-text-fill-color:transparent;-webkit-background-clip:text;line-height:80px}.zfile-login-title small[data-v-834c542c]{font-size:20px}.zfile-login-form[data-v-834c542c]{width:350px;padding:30px 35px 15px;background:#fff;border:1px solid #eaeaea;-webkit-box-shadow:0 0 25px #cac6c6;box-shadow:0 0 25px #cac6c6}.el-row[data-v-506ed09e]{overflow-y:auto}#siteForm[data-v-506ed09e]{margin-top:20px}#siteForm[data-v-506ed09e] .el-select{width:70%}.markdown-body[data-v-12b3dceb]{padding:unset}.el-drive-form-col[data-v-3a30d939]{padding-left:0!important}.zfile-site-id-input-site-type-select[data-v-3a30d939]{width:100px}.zfile-cache-statistics[data-v-4d6f6841]{margin-bottom:20px}.zfile-cache-table[data-v-4d6f6841]{width:100%;overflow-y:auto}.zfile-filter-delete-btn[data-v-20b2942a]{margin-left:10px;margin-top:5px}.zfile-filter-save-btn[data-v-20b2942a]{text-align:right;margin-top:15px}.el-row[data-v-32b498fc]{padding:20px}.el-form-item[data-v-32b498fc]{margin-right:50px}.card-title[data-v-32b498fc]{color:rgba(0,0,0,.45);font-size:14px}.card-content[data-v-32b498fc]{color:rgba(0,0,0,.85);font-size:25px;line-height:30px}.card-title-button[data-v-32b498fc]{float:right;padding:3px 0}.table-search-input[data-v-32b498fc]{width:300px;float:right}#filterForm .el-row[data-v-32b498fc]{padding:0}#cacheDialog[data-v-32b498fc] .el-dialog__body{padding:20px}.table-edit-icon[data-v-32b498fc]{margin-left:5px;color:#409eff;cursor:pointer}.zfile-admin-short-form[data-v-f6484e10] .el-form-item:first-child{margin-left:10px}.zfile-admin-short-form[data-v-f6484e10] .el-form-item:not(:first-child){margin-left:20px}.el-pagination[data-v-f6484e10]{margin-top:15px}.table-edit-icon[data-v-f6484e10]{margin-left:10px;cursor:pointer}.input-with-select .el-select[data-v-3ac09bd8]{width:100px}
.zfile-admin-index[data-v-77a86734]{height:100%;overflow-y:hidden}.zfile-admin-top[data-v-77a86734]{background-color:#001529}.zfile-admin-top-logo[data-v-77a86734]{cursor:pointer;height:100%;line-height:61px;color:#fff;padding-right:20px}.zfile-admin-top-logo[data-v-77a86734]:hover{color:#1890ff}.zfile-admin-top-content[data-v-77a86734]{display:-webkit-box;display:-ms-flexbox;display:flex;margin:auto;max-width:1200px}.zfile-admin-content[data-v-77a86734]{background-color:#f0f2f5;height:100%;overflow-y:auto}.zfile-admin-content-view[data-v-77a86734]{margin:auto;max-width:1200px;margin-top:50px;margin-bottom:100px}.el-menu--horizontal>.el-menu-item.is-active[data-v-77a86734]{color:#1890ff!important}.el-menu--horizontal>.el-menu-item[data-v-77a86734],.el-menu.el-menu--horizontal[data-v-77a86734]{border:none}.zfile-admin-index-version-info[data-v-77a86734],.zfile-admin-index-version-info[data-v-77a86734] .el-link--inner{font-size:13px}.zfile-login[data-v-732157c2]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.zfile-login-title[data-v-732157c2]{text-align:center;vertical-align:text-bottom;font-size:30px;font-weight:600;color:red;background-image:linear-gradient(-20deg,#6e45e2,#88d3ce);-webkit-text-fill-color:transparent;-webkit-background-clip:text;line-height:80px}.zfile-login-title small[data-v-732157c2]{font-size:20px}.zfile-login-form[data-v-732157c2]{width:350px;padding:30px 35px 15px;background:#fff;border:1px solid #eaeaea;-webkit-box-shadow:0 0 25px #cac6c6;box-shadow:0 0 25px #cac6c6}.el-row[data-v-506ed09e]{overflow-y:auto}#siteForm[data-v-506ed09e]{margin-top:20px}#siteForm[data-v-506ed09e] .el-select{width:70%}.markdown-body[data-v-12b3dceb]{padding:unset}.el-drive-form-col[data-v-3a30d939]{padding-left:0!important}.zfile-site-id-input-site-type-select[data-v-3a30d939]{width:100px}.zfile-cache-statistics[data-v-4d6f6841]{margin-bottom:20px}.zfile-cache-table[data-v-4d6f6841]{width:100%;overflow-y:auto}.zfile-filter-delete-btn[data-v-20b2942a]{margin-left:10px;margin-top:5px}.zfile-filter-save-btn[data-v-20b2942a]{text-align:right;margin-top:15px}.el-row[data-v-32b498fc]{padding:20px}.el-form-item[data-v-32b498fc]{margin-right:50px}.card-title[data-v-32b498fc]{color:rgba(0,0,0,.45);font-size:14px}.card-content[data-v-32b498fc]{color:rgba(0,0,0,.85);font-size:25px;line-height:30px}.card-title-button[data-v-32b498fc]{float:right;padding:3px 0}.table-search-input[data-v-32b498fc]{width:300px;float:right}#filterForm .el-row[data-v-32b498fc]{padding:0}#cacheDialog[data-v-32b498fc] .el-dialog__body{padding:20px}.table-edit-icon[data-v-32b498fc]{margin-left:5px;color:#409eff;cursor:pointer}.zfile-admin-short-form[data-v-f6484e10] .el-form-item:first-child{margin-left:10px}.zfile-admin-short-form[data-v-f6484e10] .el-form-item:not(:first-child){margin-left:20px}.el-pagination[data-v-f6484e10]{margin-top:15px}.table-edit-icon[data-v-f6484e10]{margin-left:10px;cursor:pointer}.input-with-select .el-select[data-v-3ac09bd8]{width:100px}

View File

@@ -1 +1 @@
.zfile-install[data-v-89486d62]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.zfile-install-form[data-v-89486d62]{width:450px;padding:30px 35px 15px;background:#fff;border:1px solid #eaeaea;-webkit-box-shadow:0 0 15px #cac6c6;box-shadow:0 0 15px #cac6c6}.zfile-install-title[data-v-89486d62]{text-align:center;vertical-align:text-bottom;font-size:30px;font-weight:600;color:red;background-image:linear-gradient(-20deg,#6e45e2,#88d3ce);-webkit-text-fill-color:transparent;-webkit-background-clip:text;line-height:80px}.zfile-install-enter[data-v-89486d62]{text-align:right;margin-bottom:0}.zfile-install-title small[data-v-89486d62]{font-size:20px}
.zfile-install[data-v-c4d9c6f8]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.zfile-install-form[data-v-c4d9c6f8]{width:450px;padding:30px 35px 15px;background:#fff;border:1px solid #eaeaea;-webkit-box-shadow:0 0 15px #cac6c6;box-shadow:0 0 15px #cac6c6}.zfile-install-title[data-v-c4d9c6f8]{text-align:center;vertical-align:text-bottom;font-size:30px;font-weight:600;color:red;background-image:linear-gradient(-20deg,#6e45e2,#88d3ce);-webkit-text-fill-color:transparent;-webkit-background-clip:text;line-height:80px}.zfile-install-enter[data-v-c4d9c6f8]{text-align:right;margin-bottom:0}.zfile-install-title small[data-v-c4d9c6f8]{font-size:20px}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1,187 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>404 ERROR</title>
<style type="text/css">
body, div, h3, h4, li, ol {
margin: 0;
padding: 0
}
body {
font: 14px/1.5 'Microsoft YaHei', '微软雅黑', Helvetica, Sans-serif;
min-width: 1200px;
background: #f0f1f3;
}
:focus {
outline: 0
}
h3, h4, strong {
font-weight: 700
}
a {
color: #428bca;
text-decoration: none
}
a:hover {
text-decoration: underline
}
.error-page {
background: #f0f1f3;
padding: 80px 0 180px
}
.error-page-container {
position: relative;
z-index: 1
}
.error-page-main {
position: relative;
background: #f9f9f9;
margin: 0 auto;
width: 617px;
-ms-box-sizing: border-box;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 50px 50px 70px
}
.error-page-main:before {
content: '';
display: block;
background: url(img/errorPageBorder.png?1427783409637);
height: 7px;
position: absolute;
top: -7px;
width: 100%;
left: 0
}
.error-page-main h3 {
font-size: 24px;
font-weight: 400;
border-bottom: 1px solid #d0d0d0
}
.error-page-main h3 strong {
font-size: 54px;
font-weight: 400;
margin-right: 20px
}
.error-page-main h4 {
font-size: 20px;
font-weight: 400;
color: #333
}
.error-page-actions {
font-size: 0;
z-index: 100
}
.error-page-actions div {
font-size: 14px;
display: inline-block;
padding: 30px 0 0 10px;
width: 50%;
-ms-box-sizing: border-box;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
color: #838383
}
.error-page-actions ol {
list-style: decimal;
padding-left: 20px
}
.error-page-actions li {
line-height: 2.5em
}
.error-page-actions:before {
content: '';
display: block;
position: absolute;
z-index: -1;
bottom: 17px;
left: 50px;
width: 200px;
height: 10px;
-moz-box-shadow: 4px 5px 31px 11px #999;
-webkit-box-shadow: 4px 5px 31px 11px #999;
box-shadow: 4px 5px 31px 11px #999;
-moz-transform: rotate(-4deg);
-webkit-transform: rotate(-4deg);
-ms-transform: rotate(-4deg);
-o-transform: rotate(-4deg);
transform: rotate(-4deg)
}
.error-page-actions:after {
content: '';
display: block;
position: absolute;
z-index: -1;
bottom: 17px;
right: 50px;
width: 200px;
height: 10px;
-moz-box-shadow: 4px 5px 31px 11px #999;
-webkit-box-shadow: 4px 5px 31px 11px #999;
box-shadow: 4px 5px 31px 11px #999;
-moz-transform: rotate(4deg);
-webkit-transform: rotate(4deg);
-ms-transform: rotate(4deg);
-o-transform: rotate(4deg);
transform: rotate(4deg)
}
</style>
</head>
<body>
<div class="error-page">
<div class="error-page-container">
<div class="error-page-main">
<h3>
<strong>404</strong>很抱歉,您要访问的文件/页面不存在!
</h3>
<div class="error-page-actions">
<div>
<h4>可能原因:</h4>
<ol>
<li>网络信号差不稳定</li>
<li>找不到请求的页面</li>
<li>输入的网址不正确</li>
</ol>
</div>
<div>
<h4>可以尝试:</h4>
<ol>
<li><a href="#" onclick="backHomePage()">返回首页</a></li>
<li><a href="https://github.com/zhaojun1998/zfile/issues" target="_blank">留言反馈</a></li>
<li><a href="#">联系站长</a></li>
</ol>
</div>
</div>
</div>
</div>
</div>
<script>
function backHomePage() {
window.location.href = window.location.origin;
}
</script>
</body>
</html>