package com.hanserwei.chat.reader; import org.springframework.core.io.ByteArrayResource; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; import java.io.UncheckedIOException; import java.util.Objects; /** * 简单的 {@link ByteArrayResource},用于保留多部分文件的文件名。 */ final class MultipartFileResource extends ByteArrayResource { private final String filename; private MultipartFileResource(byte[] byteArray, String filename) { super(byteArray); this.filename = filename; } static MultipartFileResource of(MultipartFile file) { try { String originalFilename = Objects.requireNonNullElse(file.getOriginalFilename(), "upload"); return new MultipartFileResource(file.getBytes(), originalFilename); } catch (IOException ex) { throw new UncheckedIOException("读取多部分文件内容失败", ex); } } @Override public String getFilename() { return filename; } }