public void CreateFileTestCase() { //加载本地文件,并实例一个IMongoFile IMongoFile file = MongoEntity.CreateFile <MyFile>(@"c:\pic1.jpg", "pic2.jpg", "jpg"); //下载文件,等同于文件另存为 file.Download(@"c:\beforesave.jpg"); //文件保存至数据库 file.Save(); //从数据中加载刚才保存的文件 IMongoFile fs = MongoEntity.LoadFile <MyFile>(file.Id); //将从数据中加载的文件下载 fs.Download(@"c:\aftersave.jpg"); //根据数据库中的文件名检索文件 var files = MongoEntity.LoadAllFiles <MyFile>("pic2.jpg"); //根据文件id,将数据库中的文件下载到本地 MongoEntity.DownloadFile <MyFile>(file.Id, @"c:\copy.jpg"); Assert.AreEqual(file.Id, fs.Id); Assert.AreEqual(1, files.Count); Assert.AreEqual(file.Id, files[0].Id); Assert.IsNull(file.MD5); Assert.IsNotNull(fs.MD5); Assert.AreEqual(file.Size, fs.Size); Assert.AreEqual(file.Data, fs.Data); }
internal static MongoGridFSFileInfo DBSaveGridFS(Type type, IMongoFile file) { using (IDBClient client = DBFactory.GetClient(type)) { using (Stream stream = File.OpenRead(file.LocalFileName)) { return(client.GridFS.Upload(stream, file.RemoteFileName, BuildMongoGridFSCreateOptions(file)));//.Upload(file.FileName); } } }
//internal static IMongoFile DBLoadGridFS(IMongoFile file) //{ // using (IDBClient client = DBFactory.GetClient(typeof(IMongoFile))) // { // file.Attach(client.GridFS.FindOneById(file.Id)); // return file; // } //} internal static MongoGridFSCreateOptions BuildMongoGridFSCreateOptions(IMongoFile file) { MongoGridFSCreateOptions options = new MongoGridFSCreateOptions(); options.Id = file.Id; options.ChunkSize = file.Size; options.ContentType = file.ContentType; options.Aliases = file.Aliases; options.Metadata = file.Metadata; options.UploadDate = file.UploadDate; return(options); }
internal static MongoGridFSFileInfo DBSaveGridFS <TFileType>(Type type, IMongoFile file) where TFileType : IMongoFile { return(DBSaveGridFS(typeof(TFileType), file)); }