From 361e8babc2e2b25eab34d8031ea3b58846498bac Mon Sep 17 00:00:00 2001 From: qwj <qwjzorro@163.com> Date: 星期三, 02 八月 2023 17:04:01 +0800 Subject: [PATCH] 更新文件服务 --- DocumentFile.Service/IUploadService.cs | 47 ++++++++++++++++------- DocumentFile.Service/Controllers/DocumentController.cs | 57 +++++++++++++++++++++++++--- DocumentServiceAPI.sln | 12 ++++- 3 files changed, 93 insertions(+), 23 deletions(-) diff --git a/DocumentFile.Service/Controllers/DocumentController.cs b/DocumentFile.Service/Controllers/DocumentController.cs index 7fa7452..57da744 100644 --- a/DocumentFile.Service/Controllers/DocumentController.cs +++ b/DocumentFile.Service/Controllers/DocumentController.cs @@ -20,16 +20,58 @@ } /// <summary> - /// 涓婁紶鏂囦欢锛坵ord锛� + /// 涓婁紶鏂囦欢妯℃澘锛坉oc銆乨ocx锛� /// </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> + /// 涓婁紶鏂囦欢锛坉oc銆乨ocx锛� + /// </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> + /// 涓婁紶鍥剧墖锛坖pg銆乯peg銆乸ng锛� + /// </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) diff --git a/DocumentFile.Service/IUploadService.cs b/DocumentFile.Service/IUploadService.cs index 9d91a2c..24834ea 100644 --- a/DocumentFile.Service/IUploadService.cs +++ b/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> diff --git a/DocumentServiceAPI.sln b/DocumentServiceAPI.sln index 6cb101d..aa26889 100644 --- a/DocumentServiceAPI.sln +++ b/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 -- Gitblit v1.9.1