http://www.runoob.com/mongodb/mongodb-java.html
如何在mongodb数据库中读取文件并且显示出来,像图片文件和音频文件。
界面代码
[csharp] view plain copy
<img src="@ViewData["html"]" />
作为测试代码,我就在界面上面写了一个image框,用来显示从MongoDB数据库中读取出来的图片。
HomeController代码
[csharp] view plain copy
public ActionResult Index()
{
ViewData["html"] = "/MongodbHelp/ProcessRequest?actions=DOWNLOAD&value=lf.png";
return View();
}
后面的代码组成相信凡是接触过MVC的读者都能看懂这个东西,后面我就直接写死了一个图片的名称。
MongodbHelpController
连接数据库的方法
[csharp] view plain copy
private static MongoDatabase DB;
public static string fileTable = "fs";//数据库中的表名称
//Sets up the environment.
public void Init()
{
[csharp] view plain copy
//我们可以在配置文件中读取
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");//创建数据库连接
用来判断我们进行的方法是哪一个,上传文件还是下载文件,在这只给大家介绍下载的方法;
[csharp] view plain copy
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; //下载文件
}
}
下载文件的类
[csharp] view plain copy
//下载文件
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数据的文件读取操作。


2184

被折叠的 条评论
为什么被折叠?



