DocumentFile.Service/Controllers/DocumentController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
DocumentFile.Service/IUploadService.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
DocumentServiceAPI.sln | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
DocumentFile.Service/Controllers/DocumentController.cs
@@ -20,16 +20,58 @@ } /// <summary> /// 上传文件(word) /// 上传文件模板(doc、docx) /// </summary> /// <param name="code">租户唯一标识code</param> /// <param name="formFile">文件</param> /// <returns></returns> [HttpPost] public async Task<IActionResult> UploadDocument(IFormFile formFile) public async Task<IActionResult> UploadDocTemplate([FromForm]string code,IFormFile formFile) { ReturnMsg msg = new ReturnMsg(); if(formFile.Length>0) { msg = await this._uploadService.HandleUploadWordFile(formFile); msg = await this._uploadService.HandleUploadTemplateFile(formFile,code); } else { msg.error = "请上传文件"; } return new JsonResult(msg); } /// <summary> /// 上传文件(doc、docx) /// </summary> /// <returns></returns> [HttpPost] public async Task<IActionResult> UploadDocInstance([FromForm] string code, IFormFile formFile) { ReturnMsg msg = new ReturnMsg(); if (formFile.Length > 0) { msg = await this._uploadService.HandleUploadWordFile(formFile, code); } else { msg.error = "请上传文件"; } return new JsonResult(msg); } /// <summary> /// 上传图片(jpg、jpeg、png) /// </summary> /// <returns></returns> [HttpPost] public async Task<IActionResult> UploadPhoto([FromForm] string code, IFormFile formFile) { ReturnMsg msg = new ReturnMsg(); if (formFile.Length > 0) { msg = await this._uploadService.HandleUploadImageFile(formFile, code); } else { @@ -45,15 +87,18 @@ /// <param name="url"></param> /// <returns></returns> [HttpPost] public IActionResult Download([FromBody] string url) public IActionResult Download([FromForm] string url) { try { if (!string.IsNullOrEmpty(url)) { var _webRootPath = AppDomain.CurrentDomain.BaseDirectory; return new FileStreamResult(new FileStream(_webRootPath + url, FileMode.Open), "application/octet-stream");// { FileDownloadName = FileName }; var path = _webRootPath + url; if (System.IO.File.Exists(path)) { return new FileStreamResult(new FileStream(path, FileMode.Open), "application/octet-stream");// { FileDownloadName = FileName }; } } } catch (Exception ex) DocumentFile.Service/IUploadService.cs
@@ -4,11 +4,11 @@ { public interface IUploadService { Task<ReturnMsg> HandleUploadWordFile(IFormFile iFormFile); Task<ReturnMsg> HandleUploadWordFile(IFormFile iFormFile,string code); Task<ReturnMsg> HandleUploadTemplateFile(IFormFile iFormFile); Task<ReturnMsg> HandleUploadTemplateFile(IFormFile iFormFile, string code); Task<ReturnMsg> HandleUploadImageFile(IFormFile iFormFile); Task<ReturnMsg> HandleUploadImageFile(IFormFile iFormFile, string code); //(string fileType, byte[] archiveData, string archiveName) DownloadFiles(string subDirectory); @@ -27,10 +27,11 @@ /// 上传文件 辅助函数 /// </summary> /// <param name="formFile"></param> /// <param name="folder"></param> /// <param name="tenant">文件夹客户标识</param> /// <param name="folder">文件夹分类标签</param> /// <param name="format"></param> /// <returns></returns> protected async virtual Task<ReturnMsg> HandleUploadFile(IFormFile formFile, string folder, params string[] format) protected async virtual Task<ReturnMsg> HandleUploadFile(IFormFile formFile,string tenant, string folder, params string[] format) { ReturnMsg msg = new ReturnMsg(); @@ -44,15 +45,14 @@ } else { var path = $"/upload/{folder}/{DateTime.Now:yyyyMMdd}"; var path = $"/uploads/{tenant}/{folder}/{DateTime.Now:yyyyMMdd}"; var dir = this._webRootPath + path; if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } var filename = $"ZC_{DateTime.Now:HHmmssfff}" + extensionName; var filename = CreateName(path,extensionName); path += "/" + filename; // 创建新文件 @@ -75,6 +75,25 @@ return msg; } /// <summary> /// 生成唯一的文件名 /// </summary> /// <param name="path"></param> /// <param name="extensionName"></param> /// <returns></returns> private string CreateName(string path,string extensionName) { var filename = $"ZC_{DateTime.Now:HHmmssfff}" + extensionName; if (File.Exists(path + "/" + filename)) { return CreateName(path, extensionName); } else { return filename; } } /// <summary> /// 上传word文件 @@ -82,8 +101,8 @@ /// <param name="iFormFile"></param> /// <param name="format"></param> /// <returns></returns> public async virtual Task<ReturnMsg> HandleUploadWordFile(IFormFile iFormFile) => await this.HandleUploadFile(iFormFile, "Instance", ".doc",".docx"); public async virtual Task<ReturnMsg> HandleUploadWordFile(IFormFile iFormFile, string code) => await this.HandleUploadFile(iFormFile,code, "Instance", ".doc",".docx"); /// <summary> /// 上传word模板文件 @@ -91,8 +110,8 @@ /// <param name="iFormFile"></param> /// <param name="format"></param> /// <returns></returns> public async virtual Task<ReturnMsg> HandleUploadTemplateFile(IFormFile iFormFile) => await this.HandleUploadFile(iFormFile, "Template", ".doc", ".docx"); public async virtual Task<ReturnMsg> HandleUploadTemplateFile(IFormFile iFormFile, string code) => await this.HandleUploadFile(iFormFile, code, "Template", ".doc", ".docx"); /// <summary> /// 上传图片 @@ -100,8 +119,8 @@ /// <param name="iFormFile"></param> /// <param name="folder"></param> /// <returns></returns> public async virtual Task<ReturnMsg> HandleUploadImageFile(IFormFile iFormFile) => await this.HandleUploadFile(iFormFile, "Photo", ".jpg", ".jpeg", ".png"); public async virtual Task<ReturnMsg> HandleUploadImageFile(IFormFile iFormFile, string code) => await this.HandleUploadFile(iFormFile, code, "Photo", ".jpg", ".jpeg", ".png"); /*, ".gif", ".jfif"*/ ///// <summary> DocumentServiceAPI.sln
@@ -11,11 +11,13 @@ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DocumentServiceAPI.Web.Entry", "DocumentServiceAPI.Web.Entry\DocumentServiceAPI.Web.Entry.csproj", "{C8D99F52-EDC7-411F-8300-6DB14BF59E8C}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DocumentServiceAPI.Model", "DocumentServiceAPI.Model\DocumentServiceAPI.Model.csproj", "{80D04681-B259-46CC-BC3B-36DB3185038D}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DocumentServiceAPI.Model", "DocumentServiceAPI.Model\DocumentServiceAPI.Model.csproj", "{80D04681-B259-46CC-BC3B-36DB3185038D}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DocumentServiceAPI.Enum", "DocumentServiceAPI.Enum\DocumentServiceAPI.Enum.csproj", "{69964B25-DFB3-4AF2-9AC7-9BB2A4880D19}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DocumentServiceAPI.Enum", "DocumentServiceAPI.Enum\DocumentServiceAPI.Enum.csproj", "{69964B25-DFB3-4AF2-9AC7-9BB2A4880D19}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DocumentServiceAPI.Utility", "DocumentServiceAPI.Utility\DocumentServiceAPI.Utility.csproj", "{32288D91-01F9-45B0-AA01-A8EF1E22A6D0}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DocumentServiceAPI.Utility", "DocumentServiceAPI.Utility\DocumentServiceAPI.Utility.csproj", "{32288D91-01F9-45B0-AA01-A8EF1E22A6D0}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DocumentFile.Service", "DocumentFile.Service\DocumentFile.Service.csproj", "{F3449EF6-8E3F-492F-832F-F5F2E1F2503C}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -51,6 +53,10 @@ {32288D91-01F9-45B0-AA01-A8EF1E22A6D0}.Debug|Any CPU.Build.0 = Debug|Any CPU {32288D91-01F9-45B0-AA01-A8EF1E22A6D0}.Release|Any CPU.ActiveCfg = Release|Any CPU {32288D91-01F9-45B0-AA01-A8EF1E22A6D0}.Release|Any CPU.Build.0 = Release|Any CPU {F3449EF6-8E3F-492F-832F-F5F2E1F2503C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F3449EF6-8E3F-492F-832F-F5F2E1F2503C}.Debug|Any CPU.Build.0 = Debug|Any CPU {F3449EF6-8E3F-492F-832F-F5F2E1F2503C}.Release|Any CPU.ActiveCfg = Release|Any CPU {F3449EF6-8E3F-492F-832F-F5F2E1F2503C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE