如何从MongoDB中读取文件

 我来答
huanglenzhi
2016-02-04 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517201
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  界面代码

  <img src="@ViewData["html"]" />

  
  作为测试代码,我就在界面上面写了一个image框,用来显示从MongoDB数据库中读取出来的图片。

  HomeController代码

  

  public ActionResult Index() { ViewData["html"] = "/MongodbHelp/ProcessRequest?actions=DOWNLOAD&value=lf.png"; return View(); }
  
  后面的代码组成相信凡是接触过MVC的读者都能看懂这个东西,后面我就直接写死了一个图片的名称。

  MongodbHelpController

  连接数据库的方法

  

  private static MongoDatabase DB; public static string fileTable = "fs";//数据库中的表名称 //Sets up the environment. public void Init() {
  //我们可以在配置文件中读取 string ConnectionString = "127.0.0.1"; //ConfigurationManager.AppSettings["mondoDbConnection"]; if (String.IsNullOrEmpty(ConnectionString)) { throw new ArgumentNullException("Connection string not found."); } MongoServerSettings mongoSetting = new MongoServerSettings(); mongoSetting.MaxConnectionPoolSize = 15000;//设定最大连接池 mongoSetting.WaitQueueSize = 500;//设定等待队列数 mongoSetting.Server = new MongoServerAddress(ConnectionString, 27017); int count = MongoServer.MaxServerCount; MongoServer server = MongoServer.Create(mongoSetting);//创建连接数据文件 DB = server.GetDatabase("local");//创建数据库连接 }

  用来判断我们进行的方法是哪一个,上传文件还是下载文件,在这只给大家介绍下载的方法;

  

  public void ProcessRequest() { Init();//initialize the mongo string action = Request.QueryString["actions"]; switch (action) { case "LIST": GetFileList(); break; //获取文件列表 case "UPLOAD": Upload(); break; //上传文件 case "DELETE": Delete(); break;//删除文件 case "DOWNLOAD": DownFile(); break; //下载文件 } }

  下载文件的类

  

  //下载文件 public void DownFile() { string filename = Request.QueryString["value"]; Response.ContentType = "application/octet-stream"; //context.Response.ContentType = "audio/mpeg"; Response.AddHeader("Content-Disposition", "attachment; filename=" + filename); MongoGridFSSettings fsSetting = new MongoGridFSSettings() { Root = fileTable }; MongoGridFS fs = new MongoGridFS(DB, fsSetting); MongoGridFSFileInfo gfInfo = new MongoGridFSFileInfo(fs, filename); //方法一,很简洁 fs.Download(Response.OutputStream, filename); Response.End(); }

  通过这几段代码,我们就轻松的完成MongoDB数据的文件读取操作。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式