加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 服务器 > 系统 > 正文

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

发布时间:2023-08-31 14:34:20 所属栏目:系统 来源:
导读:这篇文章主要介绍“MongoDB中插入图片的方法操作是什么”的相关知识,下面会通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MongoDB中插入图片的方法操作是什么”文章
这篇文章主要介绍“MongoDB中插入图片的方法操作是什么”的相关知识,下面会通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“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中查看,我们保存了两次,直接双击图片也是能显示的
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章