String fileExt = file.getOriginalFilename(). substring(file.getOriginalFilename().lastIndexOf(".")+1);是什么意思?详细解释每个属性
时间: 2024-05-24 07:12:15 浏览: 96
这行代码是用来获取上传文件的扩展名的,具体解释如下:
- file.getOriginalFilename():获取上传文件的原始文件名。
- .substring():截取字符串的方法。
- file.getOriginalFilename().lastIndexOf("."):获取上传文件原始文件名中最后一个点(即扩展名前面的点)的位置。
- 1:截取的起始位置,即从扩展名前面的点的下一个位置开始截取。
- fileExt:截取后的字符串,即上传文件的扩展名。
相关问题
/** * 上传文件 */ @RequestMapping("/upload") public R upload(@RequestParam("file") MultipartFile file, String type,HttpServletRequest request) throws Exception { if (file.isEmpty()) { throw new EIException("上传文件不能为空"); } String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1); String fileName = new Date().getTime()+"."+fileExt; File dest = new File(request.getSession().getServletContext().getRealPath("/upload")+"/"+fileName); file.transferTo(dest); if(StringUtils.isNotBlank(type) && type.equals("1")) { ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile")); if(configEntity==null) { configEntity = new ConfigEntity(); configEntity.setName("faceFile"); configEntity.setValue(fileName); } else { configEntity.setValue(fileName); } configService.insertOrUpdate(configEntity); } return R.ok().put("file", fileName); }
这是一个上传文件的方法,使用了Spring MVC框架。用户可以上传一个文件,其中type参数可选,用于区分不同的上传类型。如果type为1,则会将上传的文件名保存到数据库中。在上传文件时,会判断文件是否为空,如果为空则会抛出EIException异常。上传的文件会被保存到项目的upload文件夹下,文件名会加上当前时间戳和文件扩展名。最后,将上传的文件名作为返回结果。
@RequestMapping("/upload") public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception { if (file.isEmpty()) { throw new EIException("上传文件不能为空"); } String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1); File path = new File(ResourceUtils.getURL("classpath:static").getPath()); if(!path.exists()) { path = new File(""); } File upload = new File(path.getAbsolutePath(),"/upload/"); if(!upload.exists()) { upload.mkdirs(); } String fileName = new Date().getTime()+"."+fileExt; File dest = new File(upload.getAbsolutePath()+"/"+fileName); file.transferTo(dest); /** * 如果使用idea或者eclipse重启项目,发现之前上传的图片或者文件丢失,将下面一行代码注释打开 * 请将以下的"D:\springbootq33sd\src\main\resources\static\upload"替换成你本地项目的upload路径, * 并且项目路径不能存在中文、空格等特殊字符 */ // FileUtils.copyFile(dest, new File("D:\springbootq33sd\src\main\resources\static\upload"+"/"+fileName)); /修改了路径以后请将该行最前面的//注释去掉/ if(StringUtils.isNotBlank(type) && type.equals("1")) { ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().eq("name", "faceFile")); if(configEntity==null) { configEntity = new ConfigEntity(); configEntity.setName("faceFile"); configEntity.setValue(fileName); } else { configEntity.setValue(fileName); } configService.insertOrUpdate(configEntity); } return R.ok().put("file", fileName); }请解释上述代码的逻辑
这是一个Spring Boot的控制器方法,用于处理上传文件的请求。其中,@RequestParam("file")注解表示从请求中获取名为"file"的文件参数,@RequestParam("type")注解表示从请求中获取名为"type"的字符串参数。方法中首先判断文件是否为空,然后获取文件的后缀名,接着创建存储上传文件的目录,生成上传文件的文件名,将文件保存到目标文件中,并返回一个自定义的R对象。
最后,该方法还有一段注释的代码,用于在项目重启后保留之前上传的文件,需要将注释取消掉并修改路径以适应本地环境。
阅读全文