第一步,在application.yml做一下配置,预设下载目录
files:
upload:
path: D:/SpringBootItem/springboot/files/
其中有用到hutool工具依赖,如下在pom.xml中添加依赖,也可以选择不添加,自己修改下Controller中的代码即可
<!-- hutool工具包 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.20</version>
</dependency>
第二步,新建一个Controller
package com.example.springboot.controller;
/**
* mybatis代码生成器配置
*/
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.IdUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;
import com.example.springboot.service.IUploadLogService;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
/**
* <p>
* 上传文件
*/
@RestController
@RequestMapping("/file")
public class UploadLogController {
/**
* 上传到本地磁盘地址【从application.yml中获取预设置地址参数】
*/
@Value("${files.upload.path}")
private String fileUploadPath;
@PostMapping("/upload")
public String upload (@RequestParam MultipartFile file) throws IOException {
// 获取文件参数
String originalFilename = file.getOriginalFilename();
String type = FileUtil.extName(originalFilename);
long size = file.getSize();
File uploadFiletest = new File(fileUploadPath);
// 判断是否不存在该目录,如果是,新建一个该目录
if (!uploadFiletest.exists()) {
uploadFiletest.mkdirs();
}
// 定义一个文件的唯一标识码
String uuid = IdUtil.fastSimpleUUID();
// 重新拼接
File uploadFile = new File(fileUploadPath + uuid + "." + type);
// 进行存储到磁盘
file.transferTo(uploadFile);
return "1";
}
}
效果