using Learun.Application.Base.SystemModule; using Learun.Util; using Nancy; using System; using System.Collections.Generic; using System.IO; namespace Learun.Application.WebApi.Modules { public class AnnexesApi : BaseApi { public AnnexesApi() : base("/learun/adms/annexes") { Get["/list"] = GetList; Get["/down"] = DownAnnexesFile; Post["/upload"] = Upload; Post["/delete"] = DeleteFile; } private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL(); /// /// 获取附件列表 /// /// /// public Response GetList(dynamic _) { var keyValue = this.GetReqData(); var list = annexesFileIBLL.GetList(keyValue); return Success(list); } /// /// 上传附件图片文件 /// /// public Response Upload(dynamic _) { var files = (List)this.Context.Request.Files; var folderId = this.GetReqData(); string filePath = Config.GetValue("AnnexesFile"); string uploadDate = DateTime.Now.ToString("yyyyMMdd"); string FileEextension = Path.GetExtension(files[0].Name); string fileGuid = Guid.NewGuid().ToString(); string virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, userInfo.userId, uploadDate, fileGuid, FileEextension); //创建文件夹 string path = Path.GetDirectoryName(virtualPath); Directory.CreateDirectory(path); AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity(); if (!System.IO.File.Exists(virtualPath)) { byte[] bytes = new byte[files[0].Value.Length]; files[0].Value.Read(bytes, 0, bytes.Length); FileInfo file = new FileInfo(virtualPath); FileStream fs = file.Create(); fs.Write(bytes, 0, bytes.Length); fs.Close(); //文件信息写入数据库 fileAnnexesEntity.F_Id = fileGuid; fileAnnexesEntity.F_FileName = files[0].Name; fileAnnexesEntity.F_FilePath = virtualPath; fileAnnexesEntity.F_FileSize = files[0].Value.Length.ToString(); fileAnnexesEntity.F_FileExtensions = FileEextension; fileAnnexesEntity.F_FileType = FileEextension.Replace(".", ""); fileAnnexesEntity.F_CreateUserId = userInfo.userId; fileAnnexesEntity.F_CreateUserName = userInfo.realName; annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity); } return SuccessString(fileGuid); } /// /// 删除文件 /// /// /// public Response DeleteFile(dynamic _) { var fileId = this.GetReqData(); AnnexesFileEntity fileInfoEntity = annexesFileIBLL.GetEntity(fileId); annexesFileIBLL.DeleteEntity(fileId); //删除文件 if (System.IO.File.Exists(fileInfoEntity.F_FilePath)) { System.IO.File.Delete(fileInfoEntity.F_FilePath); } return Success("删除成功"); } /// /// 下载文件 /// /// /// public Response DownAnnexesFile(dynamic _) { string name = this.GetReqData(); string fileId = name.Split('.')[0]; var data = annexesFileIBLL.GetEntity(fileId); string filepath = data.F_FilePath; if (FileDownHelper.FileExists(filepath)) { FileDownHelper.DownLoadnew(filepath); } return Success(""); } } }