【问题标题】:How to download files stored in monogdb with gridfs using spring mvs如何使用spring mvc使用gridfs下载存储在mongodb中的文件
【发布时间】:2013-09-22 12:10:05
【问题描述】:

我已经使用 gridFS 将文件保存到 mongoDB 中。

    Mongo mongo = new Mongo("XXXXX", XXXX);
    DB db = mongo.getDB("XXX");
    GridFS fs = new GridFS(XXX);

    File install = new File("C:\\Users\\Nabeel\\Desktop\\docs.txt");
    GridFSInputFile inFile = fs.createFile(install);
    inFile.save();

现在我想使用 spring MVC 下载该文件。由于gridFS已将文件转换为二进制文件,因此我无法找到有关如何取回文件的示例。

一个示例代码会很好,因为我是新手。

提前谢谢你

【问题讨论】:

    标签: java mongodb spring-mvc gridfs


    【解决方案1】:

    你可以为服务文件做这样的事情:

    public void downloadFile(String videoId , HttpServletResponse response ) {
        InputStream is = null;  
    
        ApplicationContext ctx = new AnnotationConfigApplicationContext(MongoDBConfiguration.class);
        GridFsOperations gridOperations = (GridFsOperations) ctx.getBean("YourBeanName");
    
        List<GridFSDBFile> result = gridOperations.find(new Query().addCriteria(Criteria.where("_id").is(videoId)));
    
        for (GridFSDBFile file : result) {
            try {
                /* send file */
            } catch (Exception e) {
                response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
            }
        }
    
    }
    

    在此处发送文件示例:How do I return a video with Spring MVC so that it can be navigated using the html5 <video> tag?

    这个关于视频服务的链接,但它可以给你一个想法。使用链接中的方法2和GridFSDBFile的getInputStream()方法。

    【讨论】:

      猜你喜欢
      • 2014-05-11
      • 2013-10-27
      • 2016-04-05
      • 2015-12-21
      • 2016-01-07
      • 2015-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多