@Controller public class ImageController { @RequestMapping("/uploadImage") @ResponseBody public String uploadImage(HttpServletRequest request) throws IOException { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile file = multipartRequest.getFile("file"); //保存文件到本地磁盘 String fileName = file.getOriginalFilename(); String suffix = fileName.substring(fileName.lastIndexOf(".") + 1); // String filePath = "F:/upload/"; String filePath = "D:/ideaprojects/SSM/BookShopSystem/src/main/webapp/static/img/"; String newFileName = UUID.randomUUID().toString() + "." + suffix; File dest = new File(filePath + newFileName); if (!dest.getParentFile().exists()) { dest.getParentFile().mkdirs(); } file.transferTo(dest); //返回文件访问路径 String url = "http://localhost:8080/BookShopSystem_war/static/img/" + newFileName; System.out.println("url:"+url); return "{\"code\":0,\"msg\":\"\",\"data\":{\"src\":\"" + url + "\"}}"; } }
时间: 2024-04-01 12:32:02 浏览: 149
@ResponseBody 和 @RequestBody 注解的区别
5星 · 资源好评率100%
这段代码是一个 Java Spring MVC 的控制器类,用于处理图片上传请求。其中,@Controller 注解表示该类是一个控制器,@RequestMapping("/uploadImage") 注解指定了处理上传图片请求的 URL 地址。@ResponseBody 注解表示该方法返回的是 JSON 格式的数据。
在方法内部,首先通过 HttpServletRequest 获取上传的文件。然后,获取文件名和后缀,并使用 UUID 生成一个新的文件名。接着,将文件保存到本地磁盘指定的路径下,并返回文件访问路径(即 URL)。最后,返回一个 JSON 格式的字符串,其中包含上传成功的信息和文件访问路径。
阅读全文