有一个简单的方法可以使用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();
答案 0 :(得分:0)
我可能迟到了,但是您可以将InputStream链接到OutputStream。
因此您可以使用以下内容:
GridFSFile gridFsFile = gridFsTemplate.findOne(...);
gridFsTemplate.getResource(gridFsFile).getInputStream().transferTo(outputStream);
答案 1 :(得分:0)
在将Spring 1.x迁移到2.x时遇到相同的问题。解决方法是这里。
InputStream iStream = gridFsTemplate.getResource(gridFSFile).getInputStream();
byte[] bytes = IOUtils.toByteArray(iStream);