liaoxujun@qq.com
2023-08-23 19459be5ff2c2ca74b3f953bb1255061a36c24ad
DocumentFile.Service/IUploadService.cs
@@ -4,11 +4,11 @@
{
    public interface IUploadService
    {
        Task<ReturnMsg> HandleUploadWordFile(IFormFile iFormFile);
        Task<ReturnMsg> HandleUploadWordFile(IFormFile iFormFile,string code,string name);
        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,string name, params string[] format)
        {
            ReturnMsg msg = new ReturnMsg();
@@ -44,19 +45,32 @@
                }
                else
                {
                    var path = $"/upload/{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 = $"ZC_{DateTime.Now:HHmmssfff}" + 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();
@@ -75,6 +89,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,17 +115,17 @@
        /// <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,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)
            => await this.HandleUploadFile(iFormFile, "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>
        /// 上传图片
@@ -100,8 +133,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>