学堂 学堂 学堂公众号手机端

MongoDB中插入图片的方法操作是什么

lewis 1年前 (2024-03-23) 阅读数 5 #技术
这篇文章主要介绍“MongoDB中插入图片的方法操作是什么”的相关知识,下面会通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MongoDB中插入图片的方法操作是什么”文章能帮助大家解决问题。



图片存储方案:

mongodb操作文件,主要是通过GridFS类。存储文件主要存放在fs中,其中的fs是数据库默认的。并且GridFS是直接与数据库打交道,与collection集合无关。

maven中引入mongodb jar包

publicclassMongoImgStore{

publicstaticvoidmain(String[]args)throwsException{
//saveImgFile();
readImgFile();
}

publicstaticvoidsaveImgFile()throwsException{

//连接服务器,线上肯定是带单独的ip应该这样使用Mongo("ip")
Mongomongo=newMongo();
//连接数据库
DBdb=mongo.getDB("ImgGridFS");
//文件操作是在DB的基础上实现的,与表和文档没有关系
GridFSgridFS=null;
gridFS=newGridFS(db);

StringfileName="79831-uwceV8R.jpg";
FilereadFile=newFile("F:\\360data\\重要数据\\桌面\\page\\"+fileName);

GridFSInputFilemongofile=gridFS.createFile(readFile);
//可以再添加属性
mongofile.put("path","F:\\360data\\重要数据\\桌面\\"+fileName);
//保存
mongofile.save();
}

publicstaticvoidreadImgFile()throwsException{
//链接服务器
Mongomongo=newMongo();
//连接数据库
DBdb=mongo.getDB("ImgGridFS");
GridFSgridFs=null;
gridFs=newGridFS(db);

//查找条件
DBObjectquery=newBasicDBObject();
//查询的结果:
List<GridFSDBFile>listfiles=gridFs.find(query);
GridFSDBFilegridDBFile=listfiles.get(0);

//获得其中的文件名
//注意:不是fs中的表的列名,而是根据调试gridDBFile中的属性而来
StringfileName=(String)gridDBFile.get("filename");

System.out.println("从Mongodb获得文件名为:"+fileName);

FilewriteFile=newFile("F:\\360data\\重要数据\\桌面\\page\\"+fileName);
if(!writeFile.exists()){
writeFile.createNewFile();
}

System.out.println("可以访问的地址:"+writeFile.getAbsoluteFile());
System.out.println("总占用空间:"+writeFile.getTotalSpace());
System.out.println("总占用空间:"+gridDBFile.getInputStream());


//把数据写入磁盘中
//查看相应的提示
gridDBFile.writeTo("F:\\360data\\重要数据\\桌面\\page\\lovemm.jpg");
//写入文件中
gridDBFile.writeTo(writeFile);

}

以上先保存图片到mongodb中,在MongoVUE中查看,我们保存了两次,直接双击图片也是能显示的


这篇关于“MongoDB中插入图片的方法操作是什么”的文章就介绍到这了,更多相关的内容,欢迎关注博信,小编将为大家输出更多高质量的实用文章!
版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门