内容纲要
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()); }
留言