`
wang_zhi_peng2007
  • 浏览: 251520 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用mongodb对文件(图片、音频、视频)的存储、读取操作

 
阅读更多

使用mongodb对文件(图片、音频、视频)的存储、读取操作

    实现代码示例:

package mongo.util;

import java.io.File;
import java.io.IOException;
import java.util.List;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.gridfs.GridFS;
import com.mongodb.gridfs.GridFSDBFile;
import com.mongodb.gridfs.GridFSInputFile;

/**
 * 使用mongodb对文件(图片、音频、视频)的存储、读取操作
 * @author wangzp
 */
public class Mon_GridFS {

	public static void main(String[] args) throws Exception {
		//saveFile();
		readFile();
	}
    
	/**
     * 存储文件
	 * @throws IOException 
     */
	public static void saveFile() throws IOException{
		//连接服务器,创建实例
		Mongo mongo = new Mongo("127.0.0.1",27017);
		//连接数据库
		DB db = mongo.getDB("testGridFS");
		//文件是在DB基础上实现的,与表和文档没有关系
		GridFS gridFS = new GridFS(db);
		
		String fileName = "2-2 数据库设计.mp4";
		File readFile = new File("d:/0202/"+fileName);
		GridFSInputFile mongofile = gridFS.createFile(readFile);
		//再添加对象
		mongofile.put("path", "d:/0202/"+fileName);
		//保存
		mongofile.save();
	}
	
	/**
	 * 读取文件,写入磁盘
	 * @throws Exception 
	 */
	public static void readFile() throws Exception{
		//1.连接服务器,创建实例
		Mongo mongo = new Mongo("127.0.0.1",27017);
		//连接数据库
		DB db = mongo.getDB("testGridFS");
		//文件是在DB基础上实现的,与表和文档没有关系
		GridFS gridFS = new GridFS(db);
	    
		//2.查找条件
		DBObject query = new BasicDBObject(); 
		List<GridFSDBFile> listFile = gridFS.find(query);
		GridFSDBFile gridFSDBFile = listFile.get(0);
		
		//3.获取文件名
		//注意:不是fs中的表的列名,而是根据调试gridDBFile中的属性而来
		String fileName = (String)gridFSDBFile.get("filename");
		System.out.println("从MongoDB获得的文件名为:"+fileName);
		
		//4.创建空文件
		File writeFile = new File("d:/"+fileName);
		if(!writeFile.exists()){
			writeFile.createNewFile();
		}
		
		//5.写入文件
		gridFSDBFile.writeTo(writeFile);
	}
	
}

    图片位置:
    
    

    mongoDB 数据库客户端


 
 
 

  • 大小: 31.3 KB
  • 大小: 109.4 KB
分享到:
评论

相关推荐

    Python实现批量读取图片并存入mongodb数据库的方法示例

    使用GridFS,MongoDB可以存储大文件如图像、视频和音频文件。GridFS将文件分割成多个块进行存储,这对于处理大型文件尤其有用。 要实现批量读取图片并存入数据库,首先需要确保你已经安装了Python以及以下相关库: ...

    MongoDB入门到精通

    - GridFS 是 MongoDB 提供的一个用于存储大文件(如音频、视频等)的模块。它将文件拆分成小块进行存储,并提供了完整的API来管理这些文件。 #### 五、MongoDB中的BSON数据类型 BSON 是 MongoDB 使用的数据交换...

    MongoDB 需要的DLL.zip

    5. MongoDB.Driver.GridFS.dll:GridFS是MongoDB的一个特性,用于存储和检索大文件,如图像、视频或音频文件。当单个文件超过16MB(MongoDB文档的最大大小)时,GridFS将文件分割成多个块存储在两个不同的集合中。这...

    mongoDB + gin + websocket 实现的一个即时通信系统.zip

    WebSocket API设计简单,使得开发者可以轻松地在前端和后端之间传递消息,如发送文本、图片、音频或视频。 在具体实现过程中,Node.js被用作WebSocket服务器,因为它具有非阻塞I/O和事件驱动的特性,非常适合处理...

    MongoDB 45 道面试题及答案.docx

    * MongoDB 中的 GridFS 是一种存储和检索大文件的方法,例如图像、视频文件和音频文件。默认情况下,它使用两个文件 fs. files 和 fs. chunks 来存储文件的元数据和数据块。 * MongoDB 中的 Profiler 是一种数据库...

    图片存储到MySQL数据库中

    1. BLOB类型:BLOB(Binary Large Object)是MySQL中的数据类型,专门用于存储二进制大对象,如图片、音频或视频文件。在Java编程中,可以使用PreparedStatement的setBlob方法将图片字节数组转换为Blob对象并存储到...

    MongoDB面试锦集

    - **目的**: GridFS是MongoDB用于存储大型文件(如图片、音频和视频文件)的标准机制。 - **实现**: 文件被拆分成小块存储在多个文档中。 #### 35. GridFS的解释 - **机制**: GridFS是一种文件存储规范,允许...

    MongoDB入门学习

    - **GridFS支持**:能够存储和检索大文件,如图片、音频和视频等。 - **数据库结构**: - **Database**:数据库是MongoDB中最高级别的容器,每个数据库都有自己的命名空间。 - **Collection**:集合是文档的容器,...

    MongoDB 43 道面试题及答案.docx

    为了存储和检索大文件,例如图像、视频文件和音频文件,使用 GridFS。 MongoDB 替代方案 1. MongoDB 有哪些替代方案? Cassandra,CouchDB,Redis,Riak,Hbase 都是不错的选择。 Memcached 1. 什么是 Memcached? ...

    精典源码之数据的储存与读取.zip

    标题“精典源码之数据的储存与读取.zip”主要涵盖了两个核心概念:数据的存储和读取,这是计算机科学中的基础要素。在实际的IT应用中,无论是数据库管理系统、文件系统还是内存管理,数据的存储和读取都是至关重要的...

    07-31文件数据库

    至于数据库操作,如果是对文件数据库的操作,可能需要了解MongoDB、CouchDB、Amazon S3等文件存储服务,或者使用NoSQL数据库管理系统,它们支持直接存储和检索文件。例如,MongoDB的GridFS是专门用于存储大文件的子...

    mongodb学习手册

    GridFS是MongoDB提供的用于存储大型文件(如图像、音频文件等)的标准规范。它将文件分割成小块并分别存储在两个集合中,以确保文件的安全性和完整性。 #### 七、索引 MongoDB支持创建索引来加快数据查询速度。...

Global site tag (gtag.js) - Google Analytics