qwj
2023-08-02 361e8babc2e2b25eab34d8031ea3b58846498bac
更新文件服务
3个文件已修改
116 ■■■■ 已修改文件
DocumentFile.Service/Controllers/DocumentController.cs 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentFile.Service/IUploadService.cs 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DocumentServiceAPI.sln 12 ●●●● 补丁 | 查看 | 原始文档 | 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