文件上传后端要 post请求
单文件上传
后端
@PostMapping("file")
@ResponseBody
public String file(@RequestParam("file") MultipartFile file, HttpServletRequest request) throws IOException {
//获取服务器的真实路径
String realPath = request.getServletContext().getRealPath("/img/");
System.out.println(realPath);
File file1 = new File(realPath);
if (!file1.exists()) {
file1.mkdirs();
}
//获取上传文件名字 修改防止重名
String filename = UUID.randomUUID().toString().replace("-", "")
+ file.getOriginalFilename();
System.out.println(filename);
//保存到本地
file.transferTo(new File(realPath + filename));
return "上传成功";
}
前端
<form action="file" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="提交">
</form>
多文件上传
前端
<form action="file2" method="post" enctype="multipart/form-data">
<input type="file" name="file" multiple>
<input type="submit" value="提交">
</form>
后端
@PostMapping("file2")
@ResponseBody
public String moreFile(MultipartFile[] file, HttpServletRequest request) {
//获取真实路径
String realPath = request.getServletContext().getRealPath("/img");
//遍历获取上传的文件
for (MultipartFile multipartFile : file) {
//获取文件名
String filename = multipartFile.getOriginalFilename();
//判断非空
assert filename != null;
//截取文件格式
String suffix = filename.substring(filename.lastIndexOf("."));
//改变字符串名字防止重名
filename = UUID.randomUUID().toString().replaceAll("-", "") + filename;
System.out.println(filename);
File saveFile = new File(realPath + filename);
//不存在则创建
if (!saveFile.exists()) {
saveFile.mkdirs();
}
try {
//保存文件
multipartFile.transferTo(saveFile);
} catch (IOException e) {
e.printStackTrace();
return "上传失败";
}
}
return "上传成功";
}
本文介绍了如何在Spring Boot后端实现文件上传功能,包括单文件上传的处理流程、文件名重命名及路径创建,以及多文件上传的代码示例,展示了如何遍历并保存多个文件。

被折叠的 条评论
为什么被折叠?



