From 9be4ae0a498ae10554af11ad064b05a72c25131e Mon Sep 17 00:00:00 2001
From: qwj <qwjzorro@163.com>
Date: 星期三, 16 八月 2023 14:46:49 +0800
Subject: [PATCH] 更新上传指定路径

---
 DocumentFile.Service/IUploadService.cs                 |   58 ++++++++++++++++++-----------
 DocumentFile.Service/Controllers/DocumentController.cs |    6 +-
 2 files changed, 39 insertions(+), 25 deletions(-)

diff --git a/DocumentFile.Service/Controllers/DocumentController.cs b/DocumentFile.Service/Controllers/DocumentController.cs
index 57da744..1046bff 100644
--- a/DocumentFile.Service/Controllers/DocumentController.cs
+++ b/DocumentFile.Service/Controllers/DocumentController.cs
@@ -31,7 +31,7 @@
             ReturnMsg msg = new ReturnMsg();
             if(formFile.Length>0)
             {
-                msg = await this._uploadService.HandleUploadTemplateFile(formFile,code);                
+                msg = await this._uploadService.HandleUploadWordFile(formFile,code,"");                
             }
             else
             {
@@ -46,12 +46,12 @@
         /// </summary>
         /// <returns></returns>
         [HttpPost]
-        public async Task<IActionResult> UploadDocInstance([FromForm] string code, IFormFile formFile)
+        public async Task<IActionResult> UploadDocInstance([FromForm] string code, [FromForm] string path, IFormFile formFile)
         {
             ReturnMsg msg = new ReturnMsg();
             if (formFile.Length > 0)
             {
-                msg = await this._uploadService.HandleUploadWordFile(formFile, code);
+                msg = await this._uploadService.HandleUploadWordFile(formFile, code,path);
             }
             else
             {
diff --git a/DocumentFile.Service/IUploadService.cs b/DocumentFile.Service/IUploadService.cs
index 24834ea..833ad2a 100644
--- a/DocumentFile.Service/IUploadService.cs
+++ b/DocumentFile.Service/IUploadService.cs
@@ -4,9 +4,9 @@
 {
     public interface IUploadService
     {
-        Task<ReturnMsg> HandleUploadWordFile(IFormFile iFormFile,string code);
+        Task<ReturnMsg> HandleUploadWordFile(IFormFile iFormFile,string code,string name);
 
-        Task<ReturnMsg> HandleUploadTemplateFile(IFormFile iFormFile, string code);
+        //Task<ReturnMsg> HandleUploadTemplateFile(IFormFile iFormFile, string code);
 
         Task<ReturnMsg> HandleUploadImageFile(IFormFile iFormFile, string code);
 
@@ -31,7 +31,7 @@
         /// <param name="folder">鏂囦欢澶瑰垎绫绘爣绛�</param>
         /// <param name="format"></param>
         /// <returns></returns>
-        protected async virtual Task<ReturnMsg> HandleUploadFile(IFormFile formFile,string tenant, string folder, params string[] format)
+        protected async virtual Task<ReturnMsg> HandleUploadFile(IFormFile formFile,string tenant, string folder,string name, params string[] format)
         {
             ReturnMsg msg = new ReturnMsg();
 
@@ -45,18 +45,32 @@
                 }
                 else
                 {
-                    var path = $"/uploads/{tenant}/{folder}/{DateTime.Now:yyyyMMdd}";
-                    var dir = this._webRootPath + path;
-                    if (!Directory.Exists(dir))
+                    string path;
+                    if (string.IsNullOrEmpty(name))
                     {
-                        Directory.CreateDirectory(dir);
+                        //鏈嶅姟鍣ㄥ懡鍚�
+                        path = $"/uploads/{tenant}/{folder}/{DateTime.Now:yyyyMMdd}";
+                        var dir = this._webRootPath + path;
+                        if (!Directory.Exists(dir))
+                        {
+                            Directory.CreateDirectory(dir);
+                        }
+                        var filename = CreateName(path, extensionName);
+                        path +="/" + filename;
                     }
-
-                    var filename = CreateName(path,extensionName);                    
-                    path += "/" + filename;
+                    else
+                    {
+                        //鏈湴涓婁紶鍛藉悕
+                        path = name;
+                        string baseDirectory = Path.GetDirectoryName(this._webRootPath + name);
+                        if (!Directory.Exists(baseDirectory))
+                        {
+                            Directory.CreateDirectory(baseDirectory);
+                        }
+                    }
                                         
                     // 鍒涘缓鏂版枃浠�
-                    using var fs = File.Create(this._webRootPath+ path);
+                    using var fs = File.Create(this._webRootPath + path);
                     await formFile.CopyToAsync(fs);
                     // 娓呯┖缂撳啿鍖烘暟鎹�
                     fs.Flush();
@@ -101,17 +115,17 @@
         /// <param name="iFormFile"></param>
         /// <param name="format"></param>
         /// <returns></returns>
-        public async virtual Task<ReturnMsg> HandleUploadWordFile(IFormFile iFormFile, string code)
-            => await this.HandleUploadFile(iFormFile,code, "Instance", ".doc",".docx");
+        public async virtual Task<ReturnMsg> HandleUploadWordFile(IFormFile iFormFile, string code,string name)
+            => await this.HandleUploadFile(iFormFile,code, "Word",name, ".doc",".docx");
 
-        /// <summary>
-        /// 涓婁紶word妯℃澘鏂囦欢
-        /// </summary>
-        /// <param name="iFormFile"></param>
-        /// <param name="format"></param>
-        /// <returns></returns>
-        public async virtual Task<ReturnMsg> HandleUploadTemplateFile(IFormFile iFormFile, string code)
-            => await this.HandleUploadFile(iFormFile, code, "Template", ".doc", ".docx");
+        ///// <summary>
+        ///// 涓婁紶word妯℃澘鏂囦欢
+        ///// </summary>
+        ///// <param name="iFormFile"></param>
+        ///// <param name="format"></param>
+        ///// <returns></returns>
+        //public async virtual Task<ReturnMsg> HandleUploadTemplateFile(IFormFile iFormFile, string code)
+        //    => await this.HandleUploadFile(iFormFile, code, "Template", ".doc", ".docx");
 
         /// <summary>
         /// 涓婁紶鍥剧墖
@@ -120,7 +134,7 @@
         /// <param name="folder"></param>
         /// <returns></returns>
         public async virtual Task<ReturnMsg> HandleUploadImageFile(IFormFile iFormFile, string code)
-            => await this.HandleUploadFile(iFormFile, code, "Photo", ".jpg", ".jpeg", ".png");
+            => await this.HandleUploadFile(iFormFile, code, "Photo","", ".jpg", ".jpeg", ".png");
         /*, ".gif", ".jfif"*/
 
         ///// <summary>

--
Gitblit v1.9.1