• .net 7 上传文件踩坑


    (Name = “file”)
    没加上这个传不进文件

    		/// 
            /// 上传单个文件
            /// 
            /// 
            /// 
            [HttpPost("UploadFiles")]
            [FunctionAttribute(MuType.Btn, "上传单个文件")]
            public async Task<JsonResult> UploadFiles([FromForm(Name = "file")] IFormFile formFile)
            {
                var suffix = Path.GetExtension(formFile.FileName);
                var fileNmae = formFile.FileName;
    
                var filePaths = GetFileName(FileType.ProfilePhotoFileUpload, suffix);
    
                if (!Directory.Exists(Path.GetDirectoryName(filePaths.Item1)))
                {
                    Directory.CreateDirectory(Path.GetDirectoryName(filePaths.Item1));
                }
    
                try
                {
                   	using FileStream fileStream = System.IO.File.Create(filePaths.Item1);
                    await formFile.CopyToAsync(fileStream);
                    return await Task.FromResult(new JsonResult(
                     new JsonResult(new ApiDataResult<string>()
                     {
                         Success = true,
                         Message = "文件上传成功",
                         Data = $"{filePaths.Item2}"  //返回的文件保存地址,用作保存数据库的
                     })
                     ));
                }
                catch (Exception ex)
                {
                    return await Task.FromResult(new JsonResult(
                     new JsonResult(new ApiDataResult<string>()
                     {
                         Message = "文件上传失败了"
                     })
                     ));
                }
            }
    
            /// 
            /// 统一文件命名  类型文件夹名/年月日/yyyyMMddHHmmss_guid.后缀
            /// 
            /// 存储文件夹的名字
            /// 文件后缀
            /// 第一个返回值(绝对路径),第二个返回值(相对路径)
            private static (string, string) GetFileName(FileType fileType, string suffix)
            {
                string saveFilePath = $"{fileType.ToString()}\\{DateTime.Now.ToString("yyyyMMdd")}\\{DateTime.Now.ToString("yyyyMMddHHmmss")}_{Guid.NewGuid().ToString().ToUpper()}{suffix}";
                string allFilePaht = $"{Directory.GetCurrentDirectory()}\\{saveFilePath}";
                return (allFilePaht, saveFilePath);
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
  • 相关阅读:
    Array_JavaScript
    Transformer详解
    LQ0219 三部排序【程序填空】
    Week 7 CNN Architectures - LeNet-5、AlexNet、VGGNet、GoogLeNet、ResNet
    剑指OfferⅡ 045.二叉树最底层最左边的值 dfs
    文举论金:9.13黄金原油全面走势分析策略指导。
    【Pytorch】torch. matmul()
    云原生之容器化:Docker三剑客之Docker Swarm
    ElasticSearch:文章检索
    FIX协议的基本概念
  • 原文地址:https://blog.csdn.net/I_TenKai/article/details/134095453