• 技术文章 >数据库 >MongoDB

    mongodb中怎么插入图片?

    yangyang2020-05-28 13:26:12原创3246

    图片存储方案:

    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相关文章请关注python自学网

    专题推荐:mongodb
    品易云
    上一篇:mongodb有几种集群搭建方式? 下一篇:怎么查询mongodb中有多少条数据?

    相关文章推荐

    • mongodb卸载麻烦吗?• mongodb怎样将数据插入表中?• mongodb内存不足怎么解决?• mongodb客户端如何建表?

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网