Java 程序保存图片,文件到 MongoDB 数据库
By:Roy.LiuLast updated:2014-04-17
MongoDB 与传统的关系型数据库一样能保存图片或文件到数据库,不过操作的方法有点特殊,它借助了 GridFS 来保存文件到数据库,比如图片,视频,音乐等文件都可以。关于GridFS 的介绍,可以参考这里:http://docs.mongodb.org/manual/core/gridfs/, 一般来说对文件册操作主要包括以下几方面:
1. 保存文件到mongoDB.
2. 获取所有的文件列表
3. 从MongoDB 中得到文件,并输出保存到硬盘上
4. 从MongoDB中删除数据
1. 保存文件到mongoDB.
2. 从MongoDB 中得到文件,并输出保存到硬盘上
3. 从MongoDB 中得到文件,并输出保存到硬盘上
4. 删除文件数据
整个测试代码如下:
1. 保存文件到mongoDB.
2. 获取所有的文件列表
3. 从MongoDB 中得到文件,并输出保存到硬盘上
4. 从MongoDB中删除数据
1. 保存文件到mongoDB.
String newFileName = "yihaomen-java-image" ; File imageFile = new File( "c:\\images\\Winter.jpg" ); // create a "photo" namespace GridFS gfsPhoto = new GridFS(db, "photo" ); // get image file from local drive GridFSInputFile gfsFile = gfsPhoto.createFile(imageFile); // set a new filename for identify purpose gfsFile.setFilename(newFileName); // save the image file into mongoDB gfsFile.save(); |
2. 从MongoDB 中得到文件,并输出保存到硬盘上
GridFS gfsPhoto = new GridFS(db, "photo" ); DBCursor cursor = gfsPhoto.getFileList(); while (cursor.hasNext()) { System.out.println(cursor.next()); } |
3. 从MongoDB 中得到文件,并输出保存到硬盘上
GridFS gfsPhoto = new GridFS(db, "photo" ); GridFSDBFile imageForOutput = gfsPhoto.findOne(newFileName); // save it into a new image file imageForOutput.writeTo( "c:\\images\\Winter-From-Mongodb.jpg" ); |
4. 删除文件数据
String newFileName = yiahomen-java-image"; GridFS gfsPhoto = new GridFS(db, "photo" ); gfsPhoto.remove(gfsPhoto.findOne(newFileName)); |
整个测试代码如下:
package com.yihaomen.mongodb.process.image; import java.io.File; import java.io.IOException; import java.net.UnknownHostException; import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.Mongo; import com.mongodb.MongoException; import com.mongodb.gridfs.GridFS; import com.mongodb.gridfs.GridFSDBFile; import com.mongodb.gridfs.GridFSInputFile; public class MongoDBImage { public static void main(String[] args) { try { Mongo mongo = new Mongo( "localhost" , 27017 ); DB db = mongo.getDB( "yihaomen" ); DBCollection collection = db.getCollection( "MyImage" ); String newFileName = "yihaomen-java-image" ; File imageFile = new File( "c:\\images\\Winter.jpg" ); // create a "photo" namespace GridFS gfsPhoto = new GridFS(db, "photo" ); // get image file from local drive GridFSInputFile gfsFile = gfsPhoto.createFile(imageFile); // set a new filename for identify purpose gfsFile.setFilename(newFileName); // save the image file into mongoDB gfsFile.save(); // print the result DBCursor cursor = gfsPhoto.getFileList(); while (cursor.hasNext()) { System.out.println(cursor.next()); } // get image file by it's filename GridFSDBFile imageForOutput = gfsPhoto.findOne(newFileName); // save it into a new image file imageForOutput.writeTo( "c:\\images\\Winter-From-Mongodb.jpg" ); // remove the image file from mongoDB gfsPhoto.remove(gfsPhoto.findOne(newFileName)); System.out.println( "Done" ); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } |
From:一号门
Previous:java MongoDB 增加数据的四种方式
RELATED ARTICLES
- springboot jpa mongodb 打印查询语句.
- 分享一本电子书mongodb in action
- Spring data mongo like 查询
- Spring MVC MongoDB 分页例子下载
- Spring MVC 与 MongoDB 结合的简单例子下载
- java MongoDB 增加数据的四种方式
- 在Windows 下安装配置 MongoDB
- Java 对芒果数据库 MongoDB的增删改查入门例子
- pyspark读取mongodb需要的配置及注意事项
- navicat 连接mongo db 之后的查询语句写法
- 芒果数据库MongoDB入门开胃菜,简单易学
- Due to limitations of the BasicDBObject, you cant add a second $and
- How to set environment variables on Mac OS X
- How to install MongoDB on Mac OS X
- MongoDB : couldnt open /data/db/yourdb.ns errno:13 Permission denied
- MongoDB Authentication example
- Spring Data MongoDB : Save binary file, GridFS example
- MongoDB import and export example
- Spring Batch Example – XML File To MongoDB Database
- Spring Data MongoDB : get last modified records (date sorting)
COMMENTS