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 +++++++++++++++++++++++++++++++++--------------
 1 files changed, 33 insertions(+), 14 deletions(-)

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>

--
Gitblit v1.9.1