SpringBoot简单搭建本地http文件服务实现上传和访问
使用hutool简单创建本地文件服务
·
1.前置内容:
1.1引入依赖:hutool,使用工具里简单封装的SimpleServer,
文档地址:Hutool参考文档
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.13</version>
</dependency>
2.示例代码
2.1 yml配置
#本地文件服务器
local-file:
port: 8888
#上传路径
root: ${user.dir}/files/
#访问路径,如果配置https,则改为相应的域名
address: http://localhost:${local-file.port}/
2.2 ApplicationRunner 启动时创建http文件服务
/**
* @author ctj
* @create 2020-06-11-14:32
* @description 初始化系统
*/
@Component
public class DataInitializeRunner implements ApplicationRunner {
@Value("${local-file.port}")
private int fileServerPort;
@Value("${local-file.root}")
private String uploadRoot;
@Override
public void run(ApplicationArguments args) {
/**
* 创建文件服务
*/
HttpUtil.createServer(fileServerPort)
.setRoot(uploadRoot)
.start();
}
}
2.3 contrller层实现upload
/**
*ClassExplain:
*@Author ctj
*@Date 2021/11/10
**/
@RestController
public class FileController {
@Value("${local-file.address}")
private String fileAddress;
@Value("${local-file.root}")
private String uploadRoot;
@ApiOperation(value = "文件上传")
@PostMapping("/uploadFile")
public R uploadFile(MultipartFile file) throws IOException {
//获取文件名称,防止被覆盖生成随机名
String filename = IdUtil.fastSimpleUUID() + "_" + file.getOriginalFilename();
FileUtil.writeBytes(file.getBytes(), uploadRoot + filename);
//返回访问路径
return R.data(fileAddress + filename);
}
}
3.运行使用
3.1上传文件,响应数据:http://localhost:8888/2b531c78cdc745b6b27305a68d3b7b27_20210828122250_3b289.jpg
3.2访问链接地址,访问成功
更多推荐
已为社区贡献1条内容
所有评论(0)