不错呦!smile@林凯西,确保“准备文件”中的几个文件都有安装,S...您好,看了您这篇帖子觉得很有帮助。但是有个问题想请...我的修改过了怎么还被恶意注册呢 @jjjjiiii 用PJ快9年了,主要是A...PJ3啊,貌似很少有人用PJ了,现在不是WP就是z...@332347365,我当时接入时错误码没有-10...楼主,ChkValue值应为-103是什么意思呢?...大哥 你最近能看到我发的信息,请跟我联系,我有个制...
C#保存文件到MongoDB示例
编辑:dnawo 日期:2012-08-21
MongoFileManger.cs:
调用示例
复制内容到剪贴板
程序代码

using System;
using System.Collections.Generic;
using System.IO;
using MongoDB.Driver;
using MongoDB.Driver.GridFS;
/// <summary>
///MongoFileManger 的摘要说明
/// </summary>
public class MongoFileManger
{
#region Fields
private MongoDatabase _database;
#endregion
#region Properties
public string ConnectionString { get; private set; }
public string DatabaseName { get; private set; }
#endregion
#region Constructors
/// <summary>
/// Constructor
/// </summary>
public MongoFileManger()
: this("mongodb://localhost/?safe=true", "test")
{
}
/// <summary>
/// Constructor
/// </summary>
/// <param name="connectionString"></param>
/// <param name="databaseName"></param>
public MongoFileManger(string connectionString, string databaseName)
{
ConnectionString = connectionString;
DatabaseName = databaseName;
_database = (MongoServer.Create(ConnectionString)).GetDatabase(DatabaseName);
}
#endregion
#region Methods
/// <summary>
/// Write
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public string Write(string path)
{
string filename = Guid.NewGuid().ToString();
MongoGridFS gridfs = new MongoGridFS(_database);
byte[] bytes = new byte[1024];
int length = 0;
using (MongoGridFSStream stream = gridfs.Open(filename, FileMode.Create))
{
using (FileStream fileStream = File.Open(path, FileMode.Open))
{
while ((length = fileStream.Read(bytes, 0, bytes.Length)) > 0)
{
stream.Write(bytes, 0, length);
}
}
}
return filename;
}
/// <summary>
/// Write
/// </summary>
/// <param name="bytes"></param>
/// <returns></returns>
public string Write(byte[] bytes)
{
string filename = Guid.NewGuid().ToString();
MongoGridFS gridfs = new MongoGridFS(_database);
using (MongoGridFSStream stream = gridfs.Open(filename, FileMode.Create))
{
stream.Write(bytes, 0, bytes.Length);
}
return filename;
}
/// <summary>
/// Read
/// </summary>
/// <param name="filename"></param>
/// <returns></returns>
public byte[] Read(string filename)
{
MongoGridFS gridfs = new MongoGridFS(_database);
byte[] bytes;
using (MongoGridFSStream stream = gridfs.Open(filename, FileMode.Open))
{
bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
}
return bytes;
}
/// <summary>
/// Delete
/// </summary>
/// <param name="filename"></param>
public void Delete(string filename)
{
MongoGridFS gridfs = new MongoGridFS(_database);
gridfs.Delete(filename);
}
/// <summary>
/// FindAll
/// </summary>
/// <returns></returns>
public List<string> FindAll()
{
List<string> result = new List<string>();
MongoGridFS gridfs = new MongoGridFS(_database);
MongoCursor<MongoGridFSFileInfo> files = gridfs.FindAll();
foreach (MongoGridFSFileInfo item in files)
result.Add(item.Name);
return result;
}
#endregion
}
using System.Collections.Generic;
using System.IO;
using MongoDB.Driver;
using MongoDB.Driver.GridFS;
/// <summary>
///MongoFileManger 的摘要说明
/// </summary>
public class MongoFileManger
{
#region Fields
private MongoDatabase _database;
#endregion
#region Properties
public string ConnectionString { get; private set; }
public string DatabaseName { get; private set; }
#endregion
#region Constructors
/// <summary>
/// Constructor
/// </summary>
public MongoFileManger()
: this("mongodb://localhost/?safe=true", "test")
{
}
/// <summary>
/// Constructor
/// </summary>
/// <param name="connectionString"></param>
/// <param name="databaseName"></param>
public MongoFileManger(string connectionString, string databaseName)
{
ConnectionString = connectionString;
DatabaseName = databaseName;
_database = (MongoServer.Create(ConnectionString)).GetDatabase(DatabaseName);
}
#endregion
#region Methods
/// <summary>
/// Write
/// </summary>
/// <param name="path"></param>
/// <returns></returns>
public string Write(string path)
{
string filename = Guid.NewGuid().ToString();
MongoGridFS gridfs = new MongoGridFS(_database);
byte[] bytes = new byte[1024];
int length = 0;
using (MongoGridFSStream stream = gridfs.Open(filename, FileMode.Create))
{
using (FileStream fileStream = File.Open(path, FileMode.Open))
{
while ((length = fileStream.Read(bytes, 0, bytes.Length)) > 0)
{
stream.Write(bytes, 0, length);
}
}
}
return filename;
}
/// <summary>
/// Write
/// </summary>
/// <param name="bytes"></param>
/// <returns></returns>
public string Write(byte[] bytes)
{
string filename = Guid.NewGuid().ToString();
MongoGridFS gridfs = new MongoGridFS(_database);
using (MongoGridFSStream stream = gridfs.Open(filename, FileMode.Create))
{
stream.Write(bytes, 0, bytes.Length);
}
return filename;
}
/// <summary>
/// Read
/// </summary>
/// <param name="filename"></param>
/// <returns></returns>
public byte[] Read(string filename)
{
MongoGridFS gridfs = new MongoGridFS(_database);
byte[] bytes;
using (MongoGridFSStream stream = gridfs.Open(filename, FileMode.Open))
{
bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
}
return bytes;
}
/// <summary>
/// Delete
/// </summary>
/// <param name="filename"></param>
public void Delete(string filename)
{
MongoGridFS gridfs = new MongoGridFS(_database);
gridfs.Delete(filename);
}
/// <summary>
/// FindAll
/// </summary>
/// <returns></returns>
public List<string> FindAll()
{
List<string> result = new List<string>();
MongoGridFS gridfs = new MongoGridFS(_database);
MongoCursor<MongoGridFSFileInfo> files = gridfs.FindAll();
foreach (MongoGridFSFileInfo item in files)
result.Add(item.Name);
return result;
}
#endregion
}
调用示例
复制内容到剪贴板
程序代码

<%@ WebHandler Language="C#" Class="Default" %>
using System;
using System.Web;
using System.Collections.Generic;
public class Default : IHttpHandler {
public void ProcessRequest (HttpContext context) {
//context.Response.ContentType = "text/plain";
MongoFileManger file = new MongoFileManger();
string filename = file.Write(@"E:\Demo\WebSite1\test.gif");
byte[] bytes = file.Read(filename);
context.Response.BinaryWrite(bytes);
//MongoFileManger manager = new MongoFileManger();
//List<string> files = manager.FindAll();
//foreach (string item in files)
// context.Response.Write(item + "<br/>");
}
public bool IsReusable {
get {
return false;
}
}
}
using System;
using System.Web;
using System.Collections.Generic;
public class Default : IHttpHandler {
public void ProcessRequest (HttpContext context) {
//context.Response.ContentType = "text/plain";
MongoFileManger file = new MongoFileManger();
string filename = file.Write(@"E:\Demo\WebSite1\test.gif");
byte[] bytes = file.Read(filename);
context.Response.BinaryWrite(bytes);
//MongoFileManger manager = new MongoFileManger();
//List<string> files = manager.FindAll();
//foreach (string item in files)
// context.Response.Write(item + "<br/>");
}
public bool IsReusable {
get {
return false;
}
}
}






评论: 0 | 引用: 0 | 查看次数: 4881
发表评论
请登录后再发表评论!