概述
本文是在我由于缺乏IM工具时候需要传软件给别人的时候萌生出来的一个想法,就是希望在没有合适的工具的情况下也能实现将本地文件分享给别人,因此做了这么一件“有趣”的事情。
先来看下实现的效果吧:
点击文件可以直接下载,点击文件夹可以进入文件夹查看该文件夹中的文件列表:
并且为了方便多人维护这个文件服务器,实现资源的共享,开发了身份验证+多文件上传的功能:
这时候只要将网址中的“localhost”替换为部署的服务器IP就能实现简易的轻量级文件服务器。
实现步骤
主要针对java web新手,下面将给出主要的详细实现步骤:
新建一个java web项目
我这里以springboot项目为例,可以在https://start.spring.io/
网站上快速构建一个springboot项目,填入项目相关信息,Dependencies中搜索并添加“Web”、“Freemarker”、“security”依赖即可;点击确定后下载初始化的项目到本地,导入到你的IDE中,如Eclipse、IDEA等。springboot启动文件DemoApplication
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
该文件是springboot启动的入口类,新建springboot项目时会自动生成。
- 依赖配置文件pom.xml
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.1.5.RELEASE
com.yuhuan
demo
0.0.1-SNAPSHOT
demo
Demo project for Spring Boot
1.8
org.springframework.boot
spring-boot-starter-freemarker
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-security
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-maven-plugin
- 新建配置文件application.yml
在项目的src\main\resources目录下新建application.yml文件(或者application.xml),本文以yaml文件为例:
server:
port: 8090
spring:
servlet:
multipart:
enabled: true
file-size-threshold: 0
max-file-size: 4096MB
max-request-size: 8192MB
freemarker:
request-context-attribute: req
suffix: .html
content-type: text/html
enabled: true
cache: false
template-loader-path: classpath:/templates/
charset: UTF-8
#配置共享文件夹的路径
share:
path: D:\\java soft
#配置上传文件的账户
system:
user:
name: admin
pwd: admin@123
其中,share.path配置的就是你要共享的本地文件夹的路径。
- 编写前台页面fileList.html
共享文件列表
<#if root??>
#if>
<#if parent??>
#if>
<#list files as file>
<#if file.isDirectory()>
<#else>
#if>
${file.name}
#list>