public FileResult DownloadSingleFileById(string FileId, bool IsConvertStream = false) { FileResult Result = new FileResult(); try { using (FileCenterDbContext dbContext = new FileCenterDbContext()) { SystemFiles systemFiles = null; int Id = 0; int.TryParse(FileId, out Id); systemFiles = dbContext.SystemFiles.FirstOrDefault(s => s.Id == Id); var filePath = this.GetFilePath(systemFiles); if (IsConvertStream) { systemFiles.FileData = File.ReadAllBytes(filePath); } Result.Status = "1"; Result.Message = "SUCCESS"; Result.Result = Newtonsoft.Json.JsonConvert.SerializeObject(systemFiles); return(Result); } } catch (Exception er) { Result.Status = "0"; Result.Message = er.Message; Result.Result = null; return(Result); } }
/// <summary> /// 删除文件 /// </summary> /// <param name="FileId"></param> /// <returns></returns> public FileResult DeleteFile(string FileId) { FileResult Result = new FileResult(); try { using (FileCenterDbContext dbContext = new FileCenterDbContext()) { SystemFiles systemFiles = null; int Id = 0; int.TryParse(FileId, out Id); systemFiles = dbContext.SystemFiles.Find(Id); if (systemFiles != null) { systemFiles.IsDelete = 1; } Result.Status = "1"; Result.Message = "SUCCESS"; Result.Result = Newtonsoft.Json.JsonConvert.SerializeObject(systemFiles); return(Result); } } catch (Exception er) { Result.Status = "0"; Result.Message = er.Message; Result.Result = null; return(Result); } }
private string GetFilePath(SystemFiles file) { var filePath = string.Empty; if (file.FileCompressStatus == Model.EnumFileCompressStatus.Compressed) { // 如果文件已经被归档,需要先将文件解压到初始根目录 DepressFile(new List <int>() { file.Id }); } // 1.在存放上传文件目录中找 filePath = Path.Combine(AppConfig.FileUploadRootDirectory, file.FilePath); if (File.Exists(filePath)) { return(filePath); } // 2.在存放图片处理的目录中找 filePath = Path.Combine(AppConfig.FileCompressRootDirectory, file.FilePath); if (File.Exists(filePath)) { return(filePath); } throw new Exception($"{file.FileLongName}在服务器上找不到"); }
public FileResult GetFileTokenList(string jsonParameter) { LogHelper.Info($"GetFileTokenList Start At:{DateTime.Now}"); var Result = new FileResult(); var fileTokenList = new List <FileToken>(); var systemFiles = new SystemFiles(); try { using (FileCenterDbContext dbContext = new FileCenterDbContext()) { var passedParamList = Newtonsoft.Json.JsonConvert.DeserializeObject <List <FileToken> >(jsonParameter); foreach (var item in passedParamList) { // 解密获取真正的FileId item.FileId = rsaManager.RSADecrypt(File.ReadAllText(AppConfig.PrivateKeyFilePath), item.FileId); item.Token = this.GenerateToken(item); item.Url = $"{AppConfig.FileCenterDomain}/file/GetFile?token={HttpUtility.UrlEncode(item.Token)}"; int Id = 0; if (int.TryParse(item.FileId, out Id)) { // 传入的id是int类型,说明是Id字段 systemFiles = dbContext.SystemFiles.FirstOrDefault(s => s.Id == Id); } else { // 传入的id不是int类型,说明是FileId字段 systemFiles = dbContext.SystemFiles.FirstOrDefault(s => s.FileId == new Guid(item.FileId)); } item.FileName = systemFiles.FileName; cacheManager.Set(item.Token, item.FileId); } Result.Status = "1"; Result.Message = "SUCCESS"; Result.Result = Newtonsoft.Json.JsonConvert.SerializeObject(passedParamList); return(Result); } } catch (Exception er) { Result.Status = "0"; Result.Message = er.Message; return(Result); } finally { LogHelper.Info($"GetFileTokenList End At:{DateTime.Now}"); } }
public FileResult UploadFileSwitch(byte[] FileData, string FileName, string FileExtension, string ProjectNo, string SaveType, int IsPdf) { if (!string.IsNullOrEmpty(FileExtension)) { FileExtension = Path.GetExtension(FileName); } var Result = UpLoadFile(FileData, FileName, FileExtension, ProjectNo, SaveType); if (IsPdf == 0) // 图片不需要再转成pdf文件 { return(Result); } else { #region 转成PDF文件 var file = Newtonsoft.Json.JsonConvert.DeserializeObject <SystemFiles>(Result.Result); string savePath = file.FilePath; string fileName = file.FileName; var pdfPath = AttachmentFile2PDF(ref savePath, ref fileName, Path.Combine(AppConfig.FileUploadRootDirectory, savePath)); var systemFiles = new SystemFiles() { FileId = Guid.NewGuid(), FileData = null, FilePath = pdfPath, FileExtension = ".pdf", FileName = FileName + ".pdf", FileLongName = pdfPath, FileSize = FileData.Length, ProjectName = ProjectNo, CreateDate = DateTime.Now }; using (FileCenterDbContext dbContext = new FileCenterDbContext()) { dbContext.SystemFiles.Add(systemFiles); dbContext.SaveChanges(); } file.PdfFileId = systemFiles.FileId; var result1 = new FileResult(); result1.Status = "1"; result1.Message = "SUCCESS"; result1.Result = Newtonsoft.Json.JsonConvert.SerializeObject(file); return(result1); #endregion } }
public FileResult DownloadSingleFileByFileId(string FileId) { FileResult Result = new FileResult(); try { //_dbContext.SystemFiles.FirstOrDefault(s => s.FileId.ToString() == FileId); // 改用SQL查询,提升查询效率 var executeSql = $@" SELECT Id, FileName, FileLongName, FileExtension, FileSize, FilePath, ProjectName, FileId FROM dbo.SystemFiles WHERE FileId = '{FileId}' "; SystemFiles systemFiles = null; using (var conn = new SqlConnection(AppConfig.FileDbConnectionString)) { if (conn.State == System.Data.ConnectionState.Closed) { conn.Open(); } systemFiles = conn.Query <SystemFiles>(executeSql).FirstOrDefault(); var filePath = this.GetFilePath(systemFiles); systemFiles.FileData = File.ReadAllBytes(filePath); } Result.Status = "1"; Result.Message = "SUCCESS"; Result.Result = Newtonsoft.Json.JsonConvert.SerializeObject(systemFiles); return(Result); } catch (Exception er) { Result.Status = "0"; Result.Message = er.Message; Result.Result = null; return(Result); } }
/// <summary> /// /// </summary> /// <param name="projectNo"></param> /// <param name="localImagePath"></param> /// <param name="thumbnailImagePath"></param> /// <returns></returns> private SystemFiles GetThumbnail(string projectNo, string folder, string localImagePath, string thumbnailImagePath) { try { var systemFiles = new SystemFiles(); var OldPath = this.GetFilePath(new SystemFiles() { FilePath = folder + "/" + localImagePath }); //Server.MapPath(folder) + "/" + localImagePath; var covertPath = Path.Combine(AppConfig.FileUploadRootDirectory, folder, thumbnailImagePath); // Server.MapPath(folder) + "/" + thumbnailImagePath; var success = GetThumbnail(OldPath, covertPath, 180, 140); if (success) { var path = folder + "/" + thumbnailImagePath; systemFiles = new SystemFiles() { FileId = Guid.NewGuid(), FileData = null, FilePath = path, FileExtension = Path.GetExtension(path), FileName = Path.GetFileName(path), FileLongName = Path.GetFileName(path), FileSize = 0, ProjectName = projectNo, CreateDate = DateTime.Now }; using (FileCenterDbContext dbContext = new FileCenterDbContext()) { dbContext.SystemFiles.Add(systemFiles); dbContext.SaveChanges(); } } return(systemFiles); } catch (Exception ex) { return(new SystemFiles()); } }
public FileResult UploadFile(byte[] FileData, string FileName, string FileExtension, string ProjectNo, string SaveType) { var Result = new FileResult(); try { SystemFiles systemFiles = new SystemFiles(); var FolderName = ConfigurationManager.AppSettings[ProjectNo]; if (FolderName == null) { FolderName = ProjectNo; } string day = DateTime.Now.ToString("yyyyMMdd"); string folder = FolderName + "/" + day; string filePath = Server.MapPath(folder); if (Directory.Exists(filePath) == false)// 如果不存在就创建file文件夹 { Directory.CreateDirectory(filePath); } string longName = Guid.NewGuid().ToString(); string SaveFileName = longName + FileExtension; // 保存文件名称 using (FileStream fs = File.Create(filePath + "/" + SaveFileName)) { fs.Write(FileData, 0, FileData.Length); } string smallPicPath = longName + "_100.100" + FileExtension; systemFiles = new SystemFiles() { FileId = Guid.NewGuid(), FileData = null, FilePath = folder + "/" + SaveFileName, FileExtension = FileExtension, FileName = FileName, FileLongName = SaveFileName, FileSize = FileData.Length, ProjectName = ProjectNo, CreateDate = DateTime.Now, FileCompressStatus = EnumFileCompressStatus.Uncompressed }; if (AppConfig.ImageExtension.Contains(FileExtension.ToLower())) // 如果是图片,自动增加缩略图转换 { var coverName = Guid.NewGuid().ToString() + FileExtension; // 保存文件名称; var cover = GetThumbnail(ProjectNo, folder, SaveFileName, coverName); if (cover.FileId.HasValue) { systemFiles.CoverSavePath = cover.FilePath; systemFiles.CoverFileId = cover.FileId; } } using (FileCenterDbContext dbContext = new FileCenterDbContext()) { dbContext.SystemFiles.Add(systemFiles); dbContext.SaveChanges(); } //systemFiles.FileData = FileData;// 将二进制流返回 Result.Status = "1"; Result.Message = "SUCCESS"; Result.Result = Newtonsoft.Json.JsonConvert.SerializeObject(systemFiles); return(Result); } catch (Exception er) { Result.Status = "0"; Result.Message = er.Message; return(Result); } }