足力健后端,使用.netcore版本,合并1个项目使用

UploadController.cs 31KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. using SystemTop= System;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Threading.Tasks;
  6. using System.Common;
  7. using Microsoft.AspNetCore.Authorization;
  8. using Microsoft.AspNetCore.Mvc;
  9. using Microsoft.AspNetCore.Http;
  10. using Microsoft.Extensions.Configuration;
  11. using Microsoft.AspNetCore.Hosting;
  12. using System.IO;
  13. using TVShoppingCallCenter_ZLJ.Models.Dtos;
  14. using System.Utility.File;
  15. using System.Utility.Encrypt;
  16. namespace TVShoppingCallCenter_ZLJ.Controllers
  17. {
  18. [Authorize]
  19. [Produces("application/json")]
  20. [Route("api/[controller]")]
  21. public class UploadController : BaseController
  22. {
  23. #region 影响阅读的默认图
  24. string defaultfile = "data:image/jpeg;base64,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";
  25. string defaultphoto = "data:image/jpeg;base64,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";
  26. #endregion
  27. private readonly string uploadKey="10838107";
  28. private readonly IConfiguration _configuration;
  29. private readonly IHostingEnvironment _hostingEnvironment;
  30. public UploadController(IConfiguration configuration, IHostingEnvironment hostingEnvironment)
  31. {
  32. _configuration = configuration;
  33. _hostingEnvironment = hostingEnvironment;
  34. }
  35. /// <summary>
  36. /// 上传附件
  37. /// </summary>
  38. /// <param name="cols"></param>
  39. /// <returns></returns>
  40. [HttpPost]
  41. public async Task<IActionResult> Post(IFormCollection cols)
  42. {
  43. try
  44. {
  45. string type = cols["uploadtype"];
  46. if (string.IsNullOrEmpty(type)) type = _configuration["appSettings:FileType"].ToString();
  47. string webRootPath = _hostingEnvironment.WebRootPath;
  48. string contentRootPath = _hostingEnvironment.ContentRootPath;
  49. // url 路径
  50. string urlpre = "/api/Upload/";
  51. // 物理路径
  52. string pre = _configuration["appSettings:PhysicalPath"].ToString();
  53. var path = (string.IsNullOrEmpty(pre) ? contentRootPath + "/upload/" : pre) + type + "/";
  54. path = path + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/" + DateTime.Now.ToString("dd") + "/";
  55. FileHelper.CreateNewFolder(path);
  56. List<FileClass.FileInfo> strfiles = new List<FileClass.FileInfo>();
  57. string filesjson = cols["filesjson"];
  58. if (!string.IsNullOrEmpty(filesjson))
  59. {
  60. List<FileClass.Base64Info> jsons = filesjson.ToList<FileClass.Base64Info>();
  61. foreach (var l in jsons)
  62. {
  63. int delLength = l.fileurl.IndexOf(',') + 1;
  64. string strimg = l.fileurl.Substring(delLength, l.fileurl.Length - delLength);
  65. byte[] bData = Convert.FromBase64String(strimg);
  66. string fileExt = Path.GetExtension(l.filename); //文件扩展名,含“.”
  67. long fileSize = bData.Length; //获得文件大小,以字节为单位
  68. string newFileName = Guid.NewGuid().ToString().Replace("-", "") + fileExt; //随机生成新的文件名
  69. using (var stream = new FileStream(path + newFileName, FileMode.Create))
  70. {
  71. await stream.WriteAsync(bData, 0, bData.Length);
  72. }
  73. string filemd5 = FileHelper.GetMD5HashFromFile(path + newFileName);
  74. string key = EncryptHelper.EncryptDES(path + newFileName + "||" + l.filename, uploadKey);
  75. FileClass.FileInfo fl = new FileClass.FileInfo();
  76. fl.fileext = fileExt;
  77. fl.filename = l.filename;
  78. fl.filesize = fileSize.ToString();
  79. fl.fileurl = urlpre + key;
  80. try
  81. {
  82. string slname = FileHelper.GetThumbImg(path, newFileName, fileExt);
  83. if (slname != "")
  84. {
  85. string slkey = EncryptHelper.EncryptDES(path + slname + "||" + l.filename, uploadKey);
  86. fl.filesmallurl = urlpre + slkey;
  87. }
  88. }
  89. catch (Exception ex)
  90. {
  91. LogDefault.Error("生成缩略图失败,原因:" + ex.ToString());
  92. fl.filesmallurl = urlpre + key;
  93. }
  94. fl.filemd5 = filemd5;
  95. strfiles.Add(fl);
  96. }
  97. }
  98. foreach (var file in cols.Files)
  99. {
  100. string fileName = file.FileName;
  101. string fileExt = Path.GetExtension(fileName); //文件扩展名,含“.”
  102. long fileSize = file.Length; //获得文件大小,以字节为单位
  103. string newFileName = Guid.NewGuid().ToString().Replace("-","") + fileExt; //随机生成新的文件名
  104. using (var stream = new FileStream(path + newFileName, FileMode.Create))
  105. {
  106. await file.CopyToAsync(stream);
  107. }
  108. string filemd5 = FileHelper.GetMD5HashFromFile(path + newFileName);
  109. string key = EncryptHelper.EncryptDES(path + newFileName + "||" + fileName,uploadKey);
  110. FileClass.FileInfo fl = new FileClass.FileInfo();
  111. fl.fileext = fileExt;
  112. fl.filename = fileName;
  113. fl.filesize = fileSize.ToString();
  114. fl.fileurl = urlpre + key;
  115. try
  116. {
  117. string slname = FileHelper.GetThumbImg(path, newFileName, fileExt);
  118. if (slname != "")
  119. {
  120. string slkey = EncryptHelper.EncryptDES(path + slname + "||" + fileName, uploadKey);
  121. fl.filesmallurl = urlpre + slkey;
  122. }
  123. }
  124. catch (Exception ex)
  125. {
  126. LogDefault.Error("生成缩略图失败,原因:" + ex.ToString());
  127. fl.filesmallurl = urlpre + key;
  128. }
  129. fl.filemd5 = filemd5;
  130. strfiles.Add(fl);
  131. }
  132. return Success("上传成功", strfiles);
  133. }
  134. catch (Exception ex)
  135. {
  136. return Error("上传失败,原因:" + ex.ToString()+ex.StackTrace);
  137. }
  138. }
  139. /// <summary>
  140. /// 下载附件
  141. /// </summary>
  142. /// <param name="key"></param>
  143. /// <param name="isdel"></param>
  144. /// <returns></returns>
  145. [AllowAnonymous]
  146. [HttpGet("{key}")]
  147. public IActionResult Get(string key, int isdel = 0)
  148. {
  149. isdel = 0;
  150. string pathname = EncryptHelper.DecryptDES(key,uploadKey);
  151. string[] strs = pathname.Split("||");
  152. if (isdel > 0)
  153. {
  154. if(FileHelper.delFile(strs[0]))
  155. return Success("删除成功");
  156. else
  157. return Success("删除失败");
  158. }
  159. if (FileHelper.FileExists(strs[0]))
  160. {
  161. //var stream = System.IO.File.OpenRead(strs[0]);
  162. var fileExt = Path.GetExtension(strs[1]);
  163. ////获取文件的ContentType
  164. //var provider = new FileExtensionContentTypeProvider();
  165. //var memi = provider.Mappings[fileExt];
  166. //return File(stream, memi, Path.GetFileName(strs[1]));
  167. //IE在处理 Response Header 的时候,对header的长度限制在150字节左右。而一个汉字编码成UTF-8是9个字节,那么17个字便是153个字节,所以会
  168. SystemTop.Net.Mime.ContentDisposition cd = new SystemTop.Net.Mime.ContentDisposition
  169. {
  170. FileName = GetSubstr(strs[1]), // Path.GetFileName(strs[1]),
  171. Inline = false // false = prompt the user for downloading; true = browser to try to show the file inline
  172. };
  173. Response.Headers.Add("Content-Disposition", cd.ToString());
  174. Response.Headers.Add("X-Content-Type-Options", "nosniff");
  175. return File(SystemTop.IO.File.ReadAllBytes(strs[0]), "application/octet-stream");
  176. }
  177. else
  178. {
  179. string[] filetypes = new string[] { ".jpg", ".jpeg", ".gif", ".bmp", ".png" };
  180. var defaultbase64 = defaultfile;
  181. if (filetypes.Contains(Path.GetExtension(strs[1])))
  182. {
  183. defaultbase64 = defaultphoto;
  184. }
  185. int delLength = defaultbase64.IndexOf(',') + 1;
  186. string strimg = defaultbase64.Substring(delLength, defaultbase64.Length - delLength);
  187. byte[] bData = Convert.FromBase64String(strimg);
  188. //return File(bData, "image/jpeg", "error.jpg");
  189. SystemTop.Net.Mime.ContentDisposition cd = new SystemTop.Net.Mime.ContentDisposition
  190. {
  191. FileName = "error.jpg",
  192. Inline = false // false = prompt the user for downloading; true = browser to try to show the file inline
  193. };
  194. Response.Headers.Add("Content-Disposition", cd.ToString());
  195. Response.Headers.Add("X-Content-Type-Options", "nosniff");
  196. return File(bData, "image/jpeg");
  197. }
  198. }
  199. /// <summary>
  200. /// 获取缩短的文件标题 - 例如:aaaaaa..bbbb.pfd
  201. /// </summary>
  202. /// <param name="unicodeString"></param>
  203. /// <returns></returns>
  204. public string GetSubstr(string str)
  205. {
  206. try
  207. {
  208. //类型 .pdf - 截取.后面的字符串
  209. string Extension = str.Substring(str.LastIndexOf("."));
  210. //名称 - 截取.前面的字符串
  211. string title = str.Remove(str.LastIndexOf("."));
  212. //名称不为空
  213. if (!string.IsNullOrEmpty(title))
  214. {
  215. if (title.Length > 9)
  216. {
  217. //IE在处理 Response Header 的时候,对header的长度限制在150字节左右。而一个汉字编码成UTF-8是9个字节,那么17个字便是153个字节,所以会
  218. string Str_before = title.Substring(0, 5);
  219. string Str_after = title.Substring(title.Length - 4, 4);
  220. //拼接字符串 例如:aaaaaa..bbbb.pfd
  221. return Str_before + ".." + Str_after + Extension;
  222. }
  223. return title + Extension;
  224. }
  225. return str;
  226. }
  227. catch (Exception ex)
  228. {
  229. return DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  230. }
  231. }
  232. }
  233. }