JAVA实现文件上传时涉及的MultipartFile 接口

MultipartFile :

MultipartFile 是 Spring Framework 提供的用于处理文件上传的接口。它定义了一系列方法来获取上传文件的相关信息和内容。以下是一些常用的 MultipartFile 接口的方法:

  1. String getName() 获取表单中文件上传字段的名称。

  2. String getOriginalFilename() 获取上传文件的原始文件名。

  3. String getContentType() 获取上传文件的内容类型(MIME 类型)。

  4. boolean isEmpty() 判断上传的文件是否为空文件。

  5. long getSize() 获取上传文件的大小,单位为字节。

  6. byte[] getBytes() 将上传文件的内容读取为字节数组。

  7. InputStream getInputStream() 获取上传文件的输入流,用于读取文件内容。

  8. void transferTo(File dest) 将上传文件保存到指定的目标文件中。

其中常用的有:getOriginalFilename(),该方法可以获取上传文件的原始文件名,然后我们根据文件名的扩展名来判断文件类型或进行文件处理。

示例:

    @PostMapping("/upload")
    public Result upload(String username, Integer age, MultipartFile image) throws IOException {

        //获取原始文件名,例如:lalala.jpg
        String originalFilename = image.getOriginalFilename();

        //构造唯一的文件名(是文件名不会重复)--uuid(通用唯一识别码)
        int index = originalFilename.lastIndexOf(".");//返回“.”最后一次出现的位置索引
        String extname = originalFilename.substring(index);//获取上传文件的格式名,如“jpg”
        String newFileName = UUID.randomUUID().toString() + extname;//对文件名进行拼接
        log.info("新文件名:{}",newFileName);

        //将文件存储在本地的磁盘目录当中,这里我设置为F:\image
        image.transferTo(new File("F:\\image\\" + newFileName));
        return Result.success();
    }

实例中,先使用getOriginalFilename()获取原始文件名,然后使用lastIndexOf()获取指定字符最后一次出现的位置索引,由此获取其文件格式名"extname",接着将其与随机获取且唯一的uuid进行拼接获得新文件名。


lastIndexOf()用法:

lastIndexOf 是 Java 字符串类 java.lang.String 中的方法,用于查找指定字符或子字符串在字符串中最后一次出现的位置索引。其用法如下:

  • lastIndexOf(int ch):查找字符在字符串中最后一次出现的位置索引,如果未找到则返回 -1。
  • lastIndexOf(int ch, int fromIndex):从指定位置 fromIndex 开始向前查找字符在字符串中最后一次出现的位置索引,如果未找到则返回 -1。
  • lastIndexOf(String str):查找子字符串在字符串中最后一次出现的位置索引,如果未找到则返回 -1。
  • lastIndexOf(String str, int fromIndex):从指定位置 fromIndex 开始向前查找子字符串在字符串中最后一次出现的位置索引,如果未找到则返回 -1。

其中,ch 表示要查找的字符的 ASCII 值,fromIndex 表示开始查找的位置索引(从0开始计数),str 表示要查找的子字符串。

2)

你可能感兴趣的:(java学习笔记,java,开发语言)