@RestController @MultipartConfig @RequestMapping("/upload") public class FileUploadController { @PostMapping("/img") public Map<String, Object> upload(HttpServletRequest servletRequest, @RequestParam("file")MultipartFile file) throws IOException { System.out.println("访问到了img"); //如果文件内容不为空,则写入上传路径 if (!file.isEmpty()) { //上传文件路径,本地的路径 String path = "D:\\ideaprojects\\SSM\\BookShopSystem\\src\\main\\webapp\\static\\img"; System.out.println("文件名称"+file.getOriginalFilename()); //上传文件名 String filename = file.getOriginalFilename(); File filepath = new File(path, filename); //判断路径是否存在,没有就创建一个 if (!filepath.getParentFile().exists()) { filepath.getParentFile().mkdirs(); } //将上传文件保存到一个目标文档中 File file1 = new File(path + File.separator + filename); file.transferTo(file1); Map<String, Object> res = new HashMap<>(); //返回的是一个url对象 res.put("url", file1); return res; } else { return null; } } }
时间: 2024-02-14 17:21:09 浏览: 134
@Controller、@RestController注解区别详解
5星 · 资源好评率100%
这段代码是一个使用Spring框架编写的文件上传的控制器。该控制器使用了@RestController注解,表示这是一个RESTful风格的控制器,使用了@RequestMapping注解来映射请求路径。@MultipartConfig注解表示支持上传文件。其中,@PostMapping("/img")表示上传文件的请求路径为/upload/img,并且请求方式为Post。
该控制器中的upload方法用来处理文件上传请求。HttpServletRequest servletRequest表示HTTP请求对象,@RequestParam("file") MultipartFile file表示上传的文件对象。在方法中,首先判断文件是否为空,如果不为空,则获取上传文件的路径,判断路径是否存在,如果不存在则创建一个路径,然后将上传的文件保存到指定路径中。最后,将上传成功后的文件路径封装成一个Map对象,返回给前端。
阅读全文