mongdb非关系性数据库,提供了可以存储文件的方式,其实多数那MongoDB用来存储日志或者做一些自定义表单等功能
废话不多说,看代码吧
Gradle导入的包
dependencies {
compile 'org.mongodb:mongodb-driver:3.3.0'
}
测试代码
//上传
private static void uploadFile() throws IOException {
//获取MongoDB的链接 ip地址和端口号(版本不同方式可能不同)
//真实使用可以通过springboot本身提供的MongoDB的注入模板
MongoClient client = new MongoClient("127.0.0.1", 27017);
//数据库的名称
DB mydb = client.getDB("local");
//获取文件,正式通过前台传递
File f = new File("D://rabbitMQ.txt");
GridFS myFS = new GridFS(mydb);
//去创建文件储存表
GridFSInputFile inputFile = myFS.createFile(f);
//保存
inputFile.save();
//关闭连接
client.close();
}
//下载
private static void downloadFile(String fileName, HttpServletRequest request, HttpServletResponse response) throws Exception {
//获取MongoDB的链接 ip地址和端口号(版本不同方式可能不同)
//真实使用可以通过springboot本身提供的MongoDB的注入模板
MongoClient client = new MongoClient("127.0.0.1", 27017);
//数据库的名称
DB mydb = client.getDB("local");
//通过GridFS的方式去存储数据
GridFS myFS = new GridFS(mydb);
//第一种找到存储文件(文件fileName)
GridFSDBFile one = myFS.findOne(fileName);
//第二种找到存储文件(文件files_id)
// GridFSDBFile one = myFS.findOne("5edde513fcfa1b10ec65187a");
//第三种种找到存储文件(文件files_id)
//Query query = Query.query(Criteria.where("_id").is(fileId));
// GridFSDBFile one = myFS.findOne(query);
if (one == null) {
return;
}
System.out.println("-----------------------------------------------------------"+fileName);
if (request.getHeader("User-Agent").toUpperCase().contains("MSIE"