一.在spingmvc配置文件中配置文件解析器
二.编写controller
@RequestMapping("/courseUpload")
public ResponseResult fileUpload(@RequestParam("file")MultipartFile file, HttpServletRequest request) throws IOException {
// 1.判断文件是否为空
if (file.isEmpty()) {
throw new RuntimeException();
}
// 2.获取项目部署路径
String realPath = request.getServletContext().getRealPath("/");
String substring = realPath.substring(0, realPath.indexOf("ssm_web"));
// 3.获取源文件名
String originalFilename = file.getOriginalFilename();
// 4.生成新文件名(当前时间的时间戳+文件的后缀名)
String newFileName = System.currentTimeMillis() + originalFilename.substring(originalFilename.lastIndexOf("."));
// 5.文件上传
String uploadPath = substring + "upload\\";
File filePath = new File(uploadPath, newFileName);
// 如果目录不存在则创建目录
if(!filePath.getParentFile().exists()) {
filePath.getParentFile().mkdirs();
System.out.println("创建目录:" + filePath);
}
// 图片进行了真正的上传
file.transferTo(filePath);
// 6.将文件名和文件路径返回进行响应
HashMap<String, String> map = new HashMap<>();
map.put("fileName", newFileName);
map.put("filePath", "http://localhost:8080/upload/" + newFileName);
ResponseResult responseResult = new ResponseResult(true, 200, "图片上传成功", map);
return responseResult;
}
三.postman测试
四.访问postman返回的filePath,发现404
五.在tomcat中配置upload
六.再次访问图片路径,可以查看到图片