我已经使用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已将文件转换为二进制文件。
示例代码会很好,因为我对这一切都是新手。
提前谢谢你
答案 0 :(得分: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()方法。