为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 GridFSFile 对象写入 ByteArrayOutputStream 对象?

如何将 GridFSFile 对象写入 ByteArrayOutputStream 对象?

喵喔喔 2021-07-02 17:07:43
使用 gridFSDBFile 有一种简单的方法可以做到这一点,但现在不再如此。//This used to return a GridFSDBFile type. Returns GridFSFile now.GridFSFile gridFsFile = gridFsTemplate.findOne(new Query(Criteria.where("_id").is(idTemp)));//And would be done this way. Not anymore.gridFSFile.writeTo(outputstream)主要目标是返回保存在数据库中的图像以将其显示在 html 页面上,如下所示。response.getOutputStream().write(outputstream.toByteArray());response.getOutputStream().close();
查看完整描述

2 回答

?
猛跑小猪

TA贡献1858条经验 获得超8个赞

我在将 spring 1.x 迁移到 2.x 时遇到了同样的问题。这是修复。

InputStream iStream =  gridFsTemplate.getResource(gridFSFile).getInputStream();
byte[] bytes = IOUtils.toByteArray(iStream);


查看完整回答
反对 回复 2021-07-07
?
桃花长相依

TA贡献1860条经验 获得超8个赞

我可能迟到了,但您可以将 InputStream 链接到 OutputStream。

因此,您可以使用以下内容:

GridFSFile gridFsFile = gridFsTemplate.findOne(...);
gridFsTemplate.getResource(gridFsFile).getInputStream().transferTo(outputStream);


查看完整回答
反对 回复 2021-07-07
  • 2 回答
  • 0 关注
  • 259 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信