Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

117 строки
4.0 KiB

  1. using Learun.Application.Base.SystemModule;
  2. using Learun.Util;
  3. using Nancy;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.IO;
  7. namespace Learun.Application.WebApi.Modules
  8. {
  9. public class AnnexesApi : BaseApi
  10. {
  11. public AnnexesApi()
  12. : base("/learun/adms/annexes")
  13. {
  14. Get["/list"] = GetList;
  15. Get["/down"] = DownAnnexesFile;
  16. Post["/upload"] = Upload;
  17. Post["/delete"] = DeleteFile;
  18. }
  19. private AnnexesFileIBLL annexesFileIBLL = new AnnexesFileBLL();
  20. /// <summary>
  21. /// 获取附件列表
  22. /// </summary>
  23. /// <param name="_"></param>
  24. /// <returns></returns>
  25. public Response GetList(dynamic _)
  26. {
  27. var keyValue = this.GetReqData();
  28. var list = annexesFileIBLL.GetList(keyValue);
  29. return Success(list);
  30. }
  31. /// <summary>
  32. /// 上传附件图片文件
  33. /// <summary>
  34. /// <returns></returns>
  35. public Response Upload(dynamic _)
  36. {
  37. var files = (List<HttpFile>)this.Context.Request.Files;
  38. var folderId = this.GetReqData();
  39. string filePath = Config.GetValue("AnnexesFile");
  40. string uploadDate = DateTime.Now.ToString("yyyyMMdd");
  41. string FileEextension = Path.GetExtension(files[0].Name);
  42. string fileGuid = Guid.NewGuid().ToString();
  43. string virtualPath = string.Format("{0}/{1}/{2}/{3}{4}", filePath, userInfo.userId, uploadDate, fileGuid, FileEextension);
  44. //创建文件夹
  45. string path = Path.GetDirectoryName(virtualPath);
  46. Directory.CreateDirectory(path);
  47. AnnexesFileEntity fileAnnexesEntity = new AnnexesFileEntity();
  48. if (!System.IO.File.Exists(virtualPath))
  49. {
  50. byte[] bytes = new byte[files[0].Value.Length];
  51. files[0].Value.Read(bytes, 0, bytes.Length);
  52. FileInfo file = new FileInfo(virtualPath);
  53. FileStream fs = file.Create();
  54. fs.Write(bytes, 0, bytes.Length);
  55. fs.Close();
  56. //文件信息写入数据库
  57. fileAnnexesEntity.F_Id = fileGuid;
  58. fileAnnexesEntity.F_FileName = files[0].Name;
  59. fileAnnexesEntity.F_FilePath = virtualPath;
  60. fileAnnexesEntity.F_FileSize = files[0].Value.Length.ToString();
  61. fileAnnexesEntity.F_FileExtensions = FileEextension;
  62. fileAnnexesEntity.F_FileType = FileEextension.Replace(".", "");
  63. fileAnnexesEntity.F_CreateUserId = userInfo.userId;
  64. fileAnnexesEntity.F_CreateUserName = userInfo.realName;
  65. annexesFileIBLL.SaveEntity(folderId, fileAnnexesEntity);
  66. }
  67. return SuccessString(fileGuid);
  68. }
  69. /// <summary>
  70. /// 删除文件
  71. /// </summary>
  72. /// <param name="_"></param>
  73. /// <returns></returns>
  74. public Response DeleteFile(dynamic _)
  75. {
  76. var fileId = this.GetReqData();
  77. AnnexesFileEntity fileInfoEntity = annexesFileIBLL.GetEntity(fileId);
  78. annexesFileIBLL.DeleteEntity(fileId);
  79. //删除文件
  80. if (System.IO.File.Exists(fileInfoEntity.F_FilePath))
  81. {
  82. System.IO.File.Delete(fileInfoEntity.F_FilePath);
  83. }
  84. return Success("删除成功");
  85. }
  86. /// <summary>
  87. /// 下载文件
  88. /// </summary>
  89. /// <param name="_"></param>
  90. /// <returns></returns>
  91. public Response DownAnnexesFile(dynamic _) {
  92. string name = this.GetReqData();
  93. string fileId = name.Split('.')[0];
  94. var data = annexesFileIBLL.GetEntity(fileId);
  95. string filepath = data.F_FilePath;
  96. if (FileDownHelper.FileExists(filepath))
  97. {
  98. FileDownHelper.DownLoadnew(filepath);
  99. }
  100. return Success("");
  101. }
  102. }
  103. }