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