/// <summary> /// 上传文件 /// </summary> /// <remarks>Mongo允许同名文件,因为id才是主键</remarks> /// <param name="strFileName"></param> /// <param name="option"></param> /// <param name="mongoDb"></param> public static UploadResult UpLoadFile(string strFileName, UpLoadFileOption option, MongoDatabase mongoDb) { var gfs = mongoDb.GetGridFS(new MongoGridFSSettings()); string remoteName; if (option.FileNameOpt == EnumGfsFileName.Filename) { remoteName = new FileInfo(strFileName).Name; } else { remoteName = option.DirectorySeparatorChar != Path.DirectorySeparatorChar ? strFileName.Replace(Path.DirectorySeparatorChar, option.DirectorySeparatorChar) : strFileName; } try { MongoHelper.OnActionDone(new ActionDoneEventArgs(remoteName + " Uploading ")); if (!gfs.Exists(remoteName)) { gfs.Upload(strFileName, remoteName); return(UploadResult.Complete); } switch (option.AlreadyOpt) { case EnumGfsAlready.JustAddIt: gfs.Upload(strFileName, remoteName); return(UploadResult.Complete); case EnumGfsAlready.RenameIt: var extendName = new FileInfo(strFileName).Extension; var mainName = remoteName.Substring(0, remoteName.Length - extendName.Length); var i = 1; while (gfs.Exists(mainName + i + extendName)) { i++; } gfs.Upload(strFileName, mainName + i + extendName); return(UploadResult.Complete); case EnumGfsAlready.SkipIt: return(UploadResult.Skip); case EnumGfsAlready.OverwriteIt: gfs.Delete(remoteName); gfs.Upload(strFileName, remoteName); return(UploadResult.Complete); case EnumGfsAlready.Stop: return(UploadResult.Skip); } return(UploadResult.Skip); } catch (Exception ex) { Utility.ExceptionDeal(ex); return(UploadResult.Exception); } }
/// <summary> /// 上传文件 /// </summary> /// <remarks>Mongo允许同名文件,因为id才是主键</remarks> /// <param name="strFileName"></param> public static UploadResult UpLoadFile(String strFileName, UpLoadFileOption Option) { MongoDatabase mongoDB = SystemManager.GetCurrentDataBase(); MongoGridFS gfs = mongoDB.GetGridFS(new MongoGridFSSettings()); String RemoteName = String.Empty; if (Option.FileNameOpt == enumGFSFileName.filename) { RemoteName = new FileInfo(strFileName).Name; } else { if (Option.DirectorySeparatorChar != Path.DirectorySeparatorChar) { RemoteName = strFileName.Replace(Path.DirectorySeparatorChar, Option.DirectorySeparatorChar); } else { RemoteName = strFileName; } } try { OnActionDone(new ActionDoneEventArgs(RemoteName + " Uploading ")); if (!gfs.Exists(RemoteName)) { gfs.Upload(strFileName, RemoteName); return(UploadResult.Complete); } else { switch (Option.AlreadyOpt) { case enumGFSAlready.JustAddIt: gfs.Upload(strFileName, RemoteName); return(UploadResult.Complete); case enumGFSAlready.RenameIt: String ExtendName = new FileInfo(strFileName).Extension; String MainName = RemoteName.Substring(0, RemoteName.Length - ExtendName.Length); int i = 1; while (gfs.Exists(MainName + i.ToString() + ExtendName)) { i++; } gfs.Upload(strFileName, MainName + i.ToString() + ExtendName); return(UploadResult.Complete); case enumGFSAlready.SkipIt: return(UploadResult.Skip); case enumGFSAlready.OverwriteIt: gfs.Delete(RemoteName); gfs.Upload(strFileName, RemoteName); return(UploadResult.Complete); case enumGFSAlready.Stop: return(UploadResult.Skip); } return(UploadResult.Skip); } } catch (Exception ex) { SystemManager.ExceptionDeal(ex); return(UploadResult.Exception); } }
/// <summary> /// 上传文件 /// </summary> /// <remarks>Mongo允许同名文件,因为id才是主键</remarks> /// <param name="strFileName"></param> public static UploadResult UpLoadFile(String strFileName, UpLoadFileOption Option) { MongoDatabase mongoDB = SystemManager.GetCurrentDataBase(); MongoGridFS gfs = mongoDB.GetGridFS(new MongoGridFSSettings()); String RemoteName = String.Empty; if (Option.FileNameOpt == enumGFSFileName.Filename) { RemoteName = new FileInfo(strFileName).Name; } else { RemoteName = Option.DirectorySeparatorChar != Path.DirectorySeparatorChar ? strFileName.Replace(Path.DirectorySeparatorChar, Option.DirectorySeparatorChar) : strFileName; } try { MongoDbHelper.OnActionDone(new ActionDoneEventArgs(RemoteName + " Uploading ")); if (!gfs.Exists(RemoteName)) { gfs.Upload(strFileName, RemoteName); return UploadResult.Complete; } else { switch (Option.AlreadyOpt) { case enumGFSAlready.JustAddIt: gfs.Upload(strFileName, RemoteName); return UploadResult.Complete; case enumGFSAlready.RenameIt: String ExtendName = new FileInfo(strFileName).Extension; String MainName = RemoteName.Substring(0, RemoteName.Length - ExtendName.Length); int i = 1; while (gfs.Exists(MainName + i.ToString() + ExtendName)) { i++; } gfs.Upload(strFileName, MainName + i.ToString() + ExtendName); return UploadResult.Complete; case enumGFSAlready.SkipIt: return UploadResult.Skip; case enumGFSAlready.OverwriteIt: gfs.Delete(RemoteName); gfs.Upload(strFileName, RemoteName); return UploadResult.Complete; case enumGFSAlready.Stop: return UploadResult.Skip; } return UploadResult.Skip; } } catch (Exception ex) { SystemManager.ExceptionDeal(ex); return UploadResult.Exception; } }
/// <summary> /// 上传文件 /// </summary> /// <remarks>Mongo允许同名文件,因为id才是主键</remarks> /// <param name="strFileName"></param> /// <param name="option"></param> /// <param name="mongoDb"></param> public static UploadResult UpLoadFile(string strFileName, UpLoadFileOption option, MongoDatabase mongoDb) { var gfs = mongoDb.GetGridFS(new MongoGridFSSettings()); string remoteName; if (option.FileNameOpt == EnumGfsFileName.Filename) { remoteName = new FileInfo(strFileName).Name; } else { remoteName = option.DirectorySeparatorChar != Path.DirectorySeparatorChar ? strFileName.Replace(Path.DirectorySeparatorChar, option.DirectorySeparatorChar) : strFileName; } try { MongoHelper.OnActionDone(new ActionDoneEventArgs(remoteName + " Uploading ")); if (!gfs.Exists(remoteName)) { gfs.Upload(strFileName, remoteName); return UploadResult.Complete; } switch (option.AlreadyOpt) { case EnumGfsAlready.JustAddIt: gfs.Upload(strFileName, remoteName); return UploadResult.Complete; case EnumGfsAlready.RenameIt: var extendName = new FileInfo(strFileName).Extension; var mainName = remoteName.Substring(0, remoteName.Length - extendName.Length); var i = 1; while (gfs.Exists(mainName + i + extendName)) { i++; } gfs.Upload(strFileName, mainName + i + extendName); return UploadResult.Complete; case EnumGfsAlready.SkipIt: return UploadResult.Skip; case EnumGfsAlready.OverwriteIt: gfs.Delete(remoteName); gfs.Upload(strFileName, remoteName); return UploadResult.Complete; case EnumGfsAlready.Stop: return UploadResult.Skip; } return UploadResult.Skip; } catch (Exception ex) { Utility.ExceptionDeal(ex); return UploadResult.Exception; } }