小编给大家分享一下mongodb中插入图片的方法,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨方法吧!
图片存储方案:
mongodb操作文件,主要是通过GridFS类。存储文件主要存放在fs中,其中的fs是数据库默认的。并且GridFS是直接与数据库打交道,与collection集合无关。
maven中引入mongodb jar包
public class MongoImgStore {
public static void main(String[] args) throws Exception {
//saveImgFile();
readImgFile();
}
public static void saveImgFile() throws Exception {
//连接服务器 ,线上肯定是带单独的ip 应该这样使用 Mongo("ip")
Mongo mongo = new Mongo();
//连接数据库
DB db = mongo.getDB("ImgGridFS");
//文件操作是在DB的基础上实现的,与表和文档没有关系
GridFS gridFS = null;
gridFS = new GridFS(db);
String fileName = "79831-uwceV8R.jpg";
File readFile = new File("F:\\360data\\重要数据\\桌面\\page\\" + fileName);
GridFSInputFile mongofile = gridFS.createFile(readFile);
//可以再添加属性
mongofile.put("path", "F:\\360data\\重要数据\\桌面\\" + fileName);
//保存
mongofile.save();
}
public static void readImgFile() throws Exception {
//链接服务器
Mongo mongo = new Mongo();
//连接数据库
DB db = mongo.getDB("ImgGridFS");
GridFS gridFs = null;
gridFs = new GridFS(db);
//查找条件
DBObject query = new BasicDBObject();
//查询的结果:
List<GridFSDBFile> listfiles = gridFs.find(query);
GridFSDBFile gridDBFile = listfiles.get(0);
//获得其中的文件名
//注意 : 不是fs中的表的列名,而是根据调试gridDBFile中的属性而来
String fileName = (String) gridDBFile.get("filename");
System.out.println("从Mongodb获得文件名为:" + fileName);
File writeFile = new File("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中插入图片的方法有了一定的了解,想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。