• 技术文章 >数据库 >MongoDB

    mongodb中怎么插入图片?

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

    图片存储方案:

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

    maven中引入mongodb jar包

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    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学习网