公司做了一个从mongodb下载文件存储服务器上,需要将mongodb下载的文件格式转为MultipartFile .记录一下
直接放代码
import org.springframework.web.multipart.MultipartFile;
import com.mongodb.client.gridfs.GridFSBucket;
import com.mongodb.client.gridfs.GridFSDownloadStream;
// 将 GridFS 文件转为 MultipartFile
public MultipartFile convertToMultipartFile(GridFSBucket gridFSBucket, String fileId) throws IOException {
// 从 GridFS 中获取下载流
GridFSDownloadStream downloadStream = gridFSBucket.openDownloadStream(fileId);
// 读取流中的数据到字节数组
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = downloadStream.read(buffer)) != -1) {
baos.write(buffer, 0, len);
}
byte[] fileBytes = baos.toByteArray();
// 创建 MultipartFile 对象
MultipartFile multipartFile = new MockMultipartFile(downloadStream.getGridFSFile().getFilename(),
downloadStream.getGridFSFile().getFilename(),
downloadStream.getGridFSFile().getContentType(),
fileBytes);
return multipartFile;
}