内容纲要

MultipartFile类

概述

MultipartFile是Spring框架提供的工具类,用于接受文件流。其继承InputStreamSource,本质是接收一个文件的二进制数据流。常用于在Spring框架中实现文件上传功能。

方法

方法 说明
getInputStream() 返回InputStream读取文件的内容
getOriginalFilename() 得到原来的文件在客户机的文件系统中的名称
isEmpty() 判断是否为空,或者上传的文件是否有内容
getBytes() 将文件内容转化成一个byte[] 返回
getSize() 返回文件大小,以字节为单位
getContentType() 返回文件的内容类型

具体用法及示例

  • 传参

    public String uploadIndividuals(
          @ApiParam(value = "上传的文件", required = true)
          @RequestParam(name = "file", required = false) MultipartFile file) throws IOException {
    
    }
  • 判断大小:通过getSize()方法获取文件的字节长度,再通过计算判断其文件大小

    public void checkFileSize(MultipartFile uploadFile, int size, FileSizeUnit unit) {
      boolean valid = fileSizeLessThan(uploadFile.getSize(), size, unit);
      if (!valid) {
          throw new AppException(FilesErrorCode.FILE_NOT_SUPPORT);
      }
    }
    
    public static boolean fileSizeLessThan(Long len, int size, FileSizeUnit unit) {
      double fileSize = 0;
      if (B.equals(unit)) {
        fileSize = (double) len;
      } else if (KB.equals(unit)) {
        fileSize = (double) len / 1024;
      } else if (MB.equals(unit)) {
        fileSize = (double) len / 1048576;
      } else if (GB.equals(unit)) {
        fileSize = (double) len / 1073741824;
      }
      return fileSize <= size;
    }
  • 判断类型:通过getOriginalFilename方法获取文件的文件名,再通过后缀判断该文件属于哪一种文件类型

    public void checkFileType(MultipartFile uploadFile, UploadFileType type) {
      boolean valid = checkFileType(uploadFile, type);
      if (!valid) {
          throw new AppException(FilesErrorCode.FILE_NOT_SUPPORT);
      }
    }
    
    public static boolean checkFileType(MultipartFile file, FileType fileType) {
    return Objects.requireNonNull(file.getOriginalFilename()).toUpperCase().endsWith(fileType.name());
    }
最后修改日期: 2024年1月18日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。