文件从浏览器上传到服务器:
步骤:
1.上传文件首先要用MutipartFile 类 来接这是Spring处理文件的一个封装好的类
public R<String> upload(MultipartFile file){}
2.file接到浏览器传过来的文件需要先配置上传的路径:
一般在application.yml中配置,在controller中接
@Value("${配置的路径}")
private String basePath;
3.配置好的路径需要检查目录是否存在,不存在就创建
File filePath = new File(basePath);
if(!filePath.exists()){
filePath.mkdir();
}
4.目录配置好以后需要对文件的名字进行处理,一般用UUID生成文件的名字,因为用户上传的文件名字很可能重复。(先截取文件名后缀,在与UUID拼接)
//获取名字
String originalFilename = file.getOriginalFilename();
//截取最后一个点之后的字母
String substring = originalFilename.substring(originalFilename.lastIndexOf("."));
UUID uuid = UUID.randomUUID();
String fileName = uuid + substring;
5.最后转存到服务器
file.transferTo(new File(basePath + fileName));
完整代码:
@Value("${regiee.path}")
private String basePath;
@PostMapping("/upload")
public R<String> upload(MultipartFile file){
String originalFilename = file.getOriginalFilename();
String substring = originalFilename.substring(originalFilename.lastIndexOf("."));
UUID uuid = UUID.randomUUID();
String fileName = uuid + substring;
File filePath = new File(basePath);
if(!filePath.exists()){
filePath.mkdir();
}
try {
file.transferTo(new File(basePath + fileName));
} catch (IOException e) {
e.printStackTrace();
}
return R.success(fileName);
}