gpt4 book ai didi

java - 如何使用spring mvc通过gridfs下载存储在mongodb中的文件

转载 作者:行者123 更新时间:2023-12-01 14:06:29 27 4
gpt4 key购买 nike

我已经使用 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 已将文件转换为二进制文件。

示例代码会很好,因为我对这一切都是新手。

提前谢谢您

最佳答案

您可以执行以下操作来提供文件:

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()方法。

关于java - 如何使用spring mvc通过gridfs下载存储在mongodb中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18860274/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com