String fileName = file.getOriginalFilename(); String suffixName = fileName.substring(fileName.lastIndexOf("."));
时间: 2023-06-18 11:04:58 浏览: 45
这段代码用于获取上传文件的后缀名,可以在文件上传时对文件进行类型限制。
首先通过 `file.getOriginalFilename()` 方法获取文件名,然后通过 `lastIndexOf()` 方法获取最后一个 "." 的位置,也就是后缀名的起始位置。接着,使用 `substring()` 方法截取字符串,获取后缀名。
相关问题
@Controller public class FileUploadController { @PostMapping("/img") @ResponseBody public Map<String, Object> uploadImg(@RequestParam("file") MultipartFile file) { Map<String, Object> map = new HashMap<>(); if (file.isEmpty()) { map.put("code", 1); map.put("msg", "上传失败,请选择文件"); return map; } String fileName = file.getOriginalFilename(); String suffixName = fileName.substring(fileName.lastIndexOf(".")); String filePath = "D:/ideaprojects/SSM/BookShopSystem/src/main/webapp/static/img/"; fileName = UUID.randomUUID() + suffixName; File dest = new File(filePath + fileName); try { file.transferTo(dest); map.put("code", 0); map.put("msg", "上传成功"); map.put("url", "/static/img/" + fileName); return map; } catch (IOException e) { e.printStackTrace(); } map.put("code", 1); map.put("msg", "上传失败"); return map; } }
这是一个使用Spring MVC框架实现的文件上传控制器,其中包含一个PostMapping注解的方法uploadImg,用于处理上传文件的请求。这个方法接收一个MultipartFile类型的参数file,表示上传的文件。在方法中,首先判断文件是否为空,如果是则返回上传失败的信息;否则获取文件名和后缀名,并将文件保存到指定路径下。最后返回上传成功的信息和上传文件的访问路径。
解释以下代码@RequestMapping(value = "/upload", method = RequestMethod.POST) @ResponseBody public Result upload(@RequestParam("file") MultipartFile file) { checkMaintain(); //获取文件 if (file.isEmpty()) { return ResultGenerator.genFailResult("请选择文件"); } //生成文件名 String fileName = file.getOriginalFilename(); String suffixName = fileName.substring(fileName.lastIndexOf(".")); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss"); Random r = new Random(); StringBuilder tempName = new StringBuilder(); //20201014_13021325.png tempName.append(sdf.format(new Date())).append(r.nextInt(100)).append(suffixName); String newFileName = tempName.toString(); //保存文件到对应的目录 try { File folder = new File("D:\\upload\\"); if (!folder.exists()){ folder.mkdirs(); } // 保存文件 byte[] bytes = file.getBytes(); Path path = Paths.get("D:\\upload\\" + newFileName); Files.write(path, bytes); } catch (IOException e) { e.printStackTrace(); } Result result = ResultGenerator.genSuccessResult(); result.setData("/files/" + newFileName); return result; }
这是一个使用Spring框架开发的文件上传接口,接口路径为“/upload”,方法为POST。接口会检查是否有权限上传,如果能上传,则会获取上传的文件,并且生成一个唯一的文件名,将文件保存到指定的文件夹中,并且返回一个成功的信息,同时返回文件的访问路径。