MongoDB学习笔记(五)MongoDB文件存取操作(2)
来源:未知 责任编辑:责任编辑 发表时间:2013-11-15 19:51 点击:次
{
string filename = Guid.NewGuid().ToString();
//这里GridFile构造函数有个重载,bucket参数就是用来替换那个创建集合名中默认的"fs"的。
GridFile gridFile = new GridFile(mongoDatabase);
using (GridFileStream gridFileStream = gridFile.Create(filename))
{
gridFileStream.Write(byteFile, 0, byteFile.Length);
}
return filename;
}
private byte[] GridFsRead(string filename)
{
GridFile gridFile = new GridFile(mongoDatabase);
GridFileStream gridFileStream = gridFile.OpenRead(filename);
byte[] bytes = new byte[gridFileStream.Length];
gridFileStream.Read(bytes, 0, bytes.Length);
return bytes; www.2cto.com
}
private void GridFsDelete(string filename)
{
GridFile gridFile = new GridFile(mongoDatabase);
gridFile.Delete(new Document("filename", filename));
}
2. 再次封装GridFS操作,新文档只存储文件名称,相当于只是一个键,新文档还可以有除“文件名”之外其他的键。
/// <summary>
/// 把图片存到GridFS中
/// </summary>
public void SaveImgGridFS(byte[] byteImg)
{
string filename = GridFsSave(byteImg);
Document doc = new Document();
doc["ID"] = 1;
doc["filename"] = filename;
mongoCollection.Save(doc);
}
/// <summary>
/// 获取GridFS方式存储的图片
/// </summary>
public byte[] GetImgGridFS()
{ www.2cto.com
Document doc = mongoCollection.FindOne(new Document { { "ID", 1 } });
string filename = doc["filename"].ToString();
return GridFsRead(filename);
}
三、小结
文件存取应该不是很难,值得注意的地方是:用第一种方式从文档中读出二进制数据时,一定要将类型转换为“Binary”类型;还有系统自带的键“_id”,它也不是string类型,是“Oid”类型的。
本文出自 http://www.cnblogs.com/lipan/
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>