MongoDB怎么样存放图片

CarbonComputer 2012-11-23 08:51:33
我现在在用jsp连接MongoDB做一个应用。
按照我现在的了解,我现在只是用MongoDB存放Key-Values的数据。但是存放图片或者音乐是怎么样实现的?基本的原理是什么?MongoDB提供的gridfs怎么用?最好能给出一个简单例子,谢谢...
MongoDB现在在国内发展怎么样,有木有前途?表示作为数据库专业的孩纸很是感兴趣。
...全文
10348 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
daving2010 2015-03-04
  • 打赏
  • 举报
回复
引用 10 楼 xiaouncle 的回复:
学习了,这是Java的,有没有c#的啊,求一个。
参考这个吧,存入MongoDB的都是BSON格式,将图片转为BSON对象就能保存到MongoDB http://www.cnblogs.com/lipan/archive/2011/03/21/1989409.html
changuncle 2014-12-12
  • 打赏
  • 举报
回复
学习了,这是Java的,有没有c#的啊,求一个。
jd808 2013-03-28
  • 打赏
  • 举报
回复
如果是c的话,直接open吧图片读取出来(这个时候应该可以是二进制的啦),然后吧二进制存进去
于瓜瓜 2013-01-11
  • 打赏
  • 举报
回复

/**
	 * 存储文件 
	 * @param collectionName 集合名 
	 * @param file 文件 
	 * @param fileid 文件id 
	 * @param companyid 文件的公司id 
	 * @param filename 文件名称
	 */
	public void SaveFile(String collectionName, File file, String fileid, String companyid, String filename) {
		try {
			DB db = mongoTemplate.getDb();
			// 存储fs的根节点
			GridFS gridFS = new GridFS(db, collectionName);
			GridFSInputFile gfs = gridFS.createFile(file);
			gfs.put("aliases", companyid);
			gfs.put("filename", fileid);
			gfs.put("contentType", filename.substring(filename.lastIndexOf(".")));
			gfs.save();
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("存储文件时发生错误!!!");
		}
	}

	// 取出文件
	public GridFSDBFile retrieveFileOne(String collectionName, String filename) {
		try {
			DB db = mongoTemplate.getDb();
			// 获取fs的根节点
			GridFS gridFS = new GridFS(db, collectionName);
			GridFSDBFile dbfile = gridFS.findOne(filename);
			if (dbfile != null) {
				return dbfile;
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
		return null;
	}
//抱歉项目案例不能给你,不过这个是向mongodb存取文件的实现代码,希望能帮助到你。
//由GridFSDBFile 可以得到inputStream,这样你就明白了吧。

CarbonComputer 2012-12-09
  • 打赏
  • 举报
回复
[quote=引用 6 楼 KPRF2009 的回复:] 有没有示例代码,想参考下...
KPRF2009 2012-12-08
  • 打赏
  • 举报
回复
引用 5 楼 CarbonComputer 的回复:
引用 3 楼 fengyarongaa 的回复:一般情况下,你可以用关系型数据库的思维去理解它。保存文件的路径。 但是在你考虑使用MongoDB的时候说明你的系统的数据量已经达到了一个层级了。 也就是说推荐使用分布式的文件存储系统。 只是一个简单的应用,还没有到实际投入到互联网中,有没有现成的代码,可以用java实现图片存放与调用显示。 还不需要考虑分布式……
直接把 _id 取出来,然后当作图片名称就可以了,放在一个固定的文件夹里面
CarbonComputer 2012-12-03
  • 打赏
  • 举报
回复
引用 3 楼 fengyarongaa 的回复:
一般情况下,你可以用关系型数据库的思维去理解它。保存文件的路径。 但是在你考虑使用MongoDB的时候说明你的系统的数据量已经达到了一个层级了。 也就是说推荐使用分布式的文件存储系统。
只是一个简单的应用,还没有到实际投入到互联网中,有没有现成的代码,可以用java实现图片存放与调用显示。 还不需要考虑分布式文件存储的那些东东啦,单纯的把图片用MongoDB存起来并且调用显示。
CarbonComputer 2012-12-03
  • 打赏
  • 举报
回复
引用 1 楼 iihero 的回复:
图片,把value存成图片的物理路径,也无不可。
有没有具体例子,变成物理路径来存放?貌似MongoDB有自己的图片库的,存放图片时把图片放在file文档中,而图片编号存放在chunk文档中。但是我虽然大概知道原理,没有现成的代码参考啊。 还是希望有大神可以给一个直接的代码给我,图片存放,并且在页面上如何调用显示。
ycproc 2012-11-25
  • 打赏
  • 举报
回复
一般情况下,你可以用关系型数据库的思维去理解它。保存文件的路径。 但是在你考虑使用MongoDB的时候说明你的系统的数据量已经达到了一个层级了。 也就是说推荐使用分布式的文件存储系统。
rucypli 2012-11-24
  • 打赏
  • 举报
回复
如果图片量大还是需要分布式的文件系统来存储的
iihero_ 2012-11-24
  • 打赏
  • 举报
回复
图片,把value存成图片的物理路径,也无不可。

1,747

社区成员

发帖
与我相关
我的任务
社区描述
MongoDB相关内容讨论区
社区管理员
  • MongoDB社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧