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访问链接地址,访问成功

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐