java mongodb 图片存储_MongoDB存储图片和读取图片

本文介绍了如何使用Java操作MongoDB进行图片的存储、根据ID读取、通过MetaData属性查找以及在Web应用中展示图片。通过GridFS接口,首先创建GridFS实例,然后将本地文件存储到MongoDB,设置文件属性;接着演示了根据ObjectId获取图片并输出到响应流,以及利用查询条件找到特定元数据的图片。
摘要由CSDN通过智能技术生成

1、存储图片

// 存储文件信息

GridFS gridFS = new GridFS(MongoDBUtil.getDB(), "test");

File localFile = new File("d://test.jpg");

GridFSInputFile oneFile = gridFS.createFile(localFile);

oneFile.setFilename("test.jpg");

// 配置文件属性

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式

BasicDBObject metadata = new BasicDBObject();

metadata.put("uploadDate", df.format(new Date()));

oneFile.setMetaData(metadata);//添加属性

oneFile.save();//保存文件

2、根据文件ID读取图片

// 存储文件信息

GridFS gridFS = new GridFS(MongoDBUtil.getDB(), "test");

// 读取文件

GridFSDBFile outFile = gridFS.findOne(new ObjectId(request.getParameter("id")));

//System.out.println(outFile);

3、根据MetaData属性查找图片

//

GridFS gridFS = new GridFS(MongoDBUtil.getDB(), "test");

//查找条件

BasicDBObject query = new BasicDBObject("metadata.pkid", "1123");

List listFiles = gridFS.find(query);

System.out.println(listFiles);

System.out.println(listFiles.size());

4、显示图片

@RequestMapping(value = "/show")

public void show(HttpServletRequest request, HttpServletResponse response){

try {

OutputStream out = response.getOutputStream();

response.setContentType("image/jpg");

GridFS gridFS = new GridFS(MongoDBUtil.getDB(), "test");

// 读取文件

GridFSDBFile outFile = gridFS.findOne(new ObjectId(request.getParameter("id")));

//System.out.println(outFile);

if(outFile!=null){

outFile.writeTo(out);

out.flush();

out.close();

}

} catch (Exception e) {

e.printStackTrace();

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值