![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/01cb1755142e564ffcc38341c17a2ef3.png)
- form表单发出request请求,SpringMVC可以用前端控制器调往文件解析器
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8d674544eba7c80dec33f19884748e80.png)
解析,封装成MultipartFile的对象并绑定名字(就是form表单的对应input的“name”),然后可以在Controller方法获取该对象进行文件上传
package com.czh.controller;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.UUID;
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/fileUpLoad2")
public String fileUpLoad2(@RequestParam("uploaddd") MultipartFile upload,HttpServletRequest req) throws IOException {
System.out.println("SpringMVC文件上传2....");
String realPath = req.getSession().getServletContext().getRealPath("/uploads/");
File file = new File(realPath);
if (!file.exists()){
file.mkdirs();
}
String filename = upload.getOriginalFilename();
String uuid = UUID.randomUUID().toString().replace("-", "");
filename = uuid+"_"+filename;
upload.transferTo(new File(realPath,filename));
return "success";
}
@RequestMapping("/fileUpLoad1")
public String fileUpLoad1(HttpServletRequest req) throws Exception {
System.out.println("文件上传1....");
String realPath = req.getSession().getServletContext().getRealPath("/uploads/");
File file = new File(realPath);
if (!file.exists()){
file.mkdirs();
}
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> fileItems = upload.parseRequest(req);
for (FileItem fileItem : fileItems) {
if(fileItem.isFormField()){
}else {
String fileItemName = fileItem.getName();
String uuid = UUID.randomUUID().toString().replace("-", "");
fileItemName = uuid+"_"+fileItemName;
fileItem.write(new File(realPath,fileItemName));
fileItem.delete();
}
}
return "success";
}
}