/// <summary> /// 字节数组方式保存文件 /// </summary> /// <param name="fileData">数据内容</param> /// <param name="fileName">文件名</param> /// <param name="fileCollectionName"></param> public virtual void SaveFileByByteArray(byte[] fileData, string fileName, string fileCollectionName) { try { if (0 == fileData.Length || string.IsNullOrEmpty(fileName) || string.IsNullOrEmpty(fileCollectionName)) { throw new KnownException("缺失必需数据,无法保存数据!"); } MongoGridFSSettings fsSetting = new MongoGridFSSettings() { Root = fileCollectionName }; //MongoGridFS fs = new MongoGridFS(_database, fsSetting); // 将被遗弃的方法 MongoGridFS fs = new MongoGridFS(_server, _database.Name, fsSetting); MongoGridFSCreateOptions option = new MongoGridFSCreateOptions { UploadDate = DateTime.Now }; using (MongoGridFSStream gfs = fs.Create(fileName, option)) { gfs.Write(fileData, 0, fileData.Length); gfs.Close(); } } catch (Exception ex) { throw ex; } // 设定查询集合的名称 }
/// <summary> /// 读取报表结果 /// </summary> /// <param name="filename"></param> /// <param name="rootName"></param> /// <returns></returns> public string ReadFileFromMongoDb(string filename, string rootName) { string tablestr; MongoGridFS fs = GetGridFs(Dbname, rootName); MongoGridFSFileInfo gfInfo = new MongoGridFSFileInfo(fs, filename); using (MongoGridFSStream gfs = gfInfo.OpenRead()) { using (TextReader reader = new StreamReader(gfs, Encoding.UTF8)) { tablestr = reader.ReadToEnd(); } } return(tablestr); }
/// <summary> /// 保存报表结果 /// </summary> /// <param name="savsString"></param> /// <param name="rootName"></param> /// <param name="fileName"></param> /// <returns></returns> public void SaveFileToMongoDb(string fileName, string savsString, string rootName) { //BsonDocument doc = new BsonDocument(); //doc.Add("UserID", 1L); //option.Metadata = doc; MongoGridFS gf = GetGridFs(Dbname, rootName); using (MongoGridFSStream gfs = gf.Create(fileName, new MongoGridFSCreateOptions() { UploadDate = DateTime.Now })) { byte[] bytes = Encoding.UTF8.GetBytes(savsString); gfs.Write(bytes, 0, bytes.Length); } }
public void TestReadAllGridFS2Text() { var server = MongoServer.Create("mongodb://localhost:27017"); var db = server.GetDatabase("dcm"); var gridSettings = new MongoGridFSSettings(); MongoGridFS fs = db.GetGridFS(gridSettings); var fileInfo = fs.Find(Query.EQ("filename", "D:\\Download\\FileTestUpload\\Hello2.txt")); int index = 0; foreach (var item in fileInfo) { MongoGridFSStream readerFS = item.Open(System.IO.FileMode.Open); StreamReader reader = new StreamReader(readerFS); string text = reader.ReadToEnd(); Console.WriteLine("####### {0}", ++index); Console.WriteLine(text); } }
public void TestReadGridFS2Array() { var server = MongoServer.Create("mongodb://localhost:27017"); var db = server.GetDatabase("dcm"); var where = Query.EQ("md5", "cac1807172774be5d48937cee90c9e84"); MongoGridFS fs = db.GridFS; MongoGridFSFileInfo fileInfo = fs.FindOne(where); MongoGridFSStream readerFS = fileInfo.Open(System.IO.FileMode.Open); List <byte> readByte = new List <byte>(); int bufferSize = 4048; byte[] buffer = new byte[bufferSize]; int readCount = readerFS.Read(buffer, 0, bufferSize); while (readCount > 0) { readByte.AddRange(buffer.Take(readCount).ToArray()); readCount = readerFS.Read(buffer, 0, bufferSize); } }
/// <summary> /// 获取流 /// </summary> /// <param name="remoteFile"></param> /// <returns></returns> public byte[] GetBytes(string remoteFile) { _logger.DebugFormat("Get Stream by Id {0}", remoteFile); try { MongoGridFS fs = new MongoGridFS(_context.DataBase); byte[] bytes; using (MongoGridFSStream gfs = fs.OpenRead(remoteFile)) { bytes = new Byte[gfs.Length]; gfs.Read(bytes, 0, bytes.Length); } return(bytes); } catch (Exception ex) { _logger.Error(ex.Message); _logger.Error(ex.StackTrace); throw; } }