【问题标题】:How do I write a GridFSFile object into a ByteArrayOutputStream object?如何将 GridFSFile 对象写入 ByteArrayOutputStream 对象?
【发布时间】:2019-01-16 05:16:51
【问题描述】:

使用 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();

【问题讨论】:

    标签: java spring mongodb outputstream gridfs


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2018-10-19
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多