当前位置: 首页 > article >正文

.net 7 上传文件踩坑

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

		/// <summary>
        /// 上传单个文件
        /// </summary>
        /// <param name="formFile"></param>
        /// <returns></returns>
        [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 = "文件上传失败了"
                 })
                 ));
            }
        }

        /// <summary>
        /// 统一文件命名  类型文件夹名/年月日/yyyyMMddHHmmss_guid.后缀
        /// </summary>
        /// <param name="fileType">存储文件夹的名字</param>
        /// <param name="suffix">文件后缀</param>
        /// <returns>第一个返回值(绝对路径),第二个返回值(相对路径)</returns>
        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);
        }

http://www.kler.cn/news/107508.html

相关文章:

  • 【Python机器学习】零基础掌握DecisionBoundaryDisplay检验、检查
  • SpringMVC Day 05 : Spring 中的 Model
  • react实现步进器
  • flutter升级+生成drift文件
  • hadoop使用简介
  • C# 递归算法使用简介_常用整理
  • Vue引入异步组件
  • STM32F4X SDIO(二) SDIO协议
  • 使用Hystrix实现请求合并,降低服务器并发压力
  • Jquery 如何获取子元素。如何找到所有 HTML select 标签的选中项。jQuery 里的 ID 选择器和 class 选择器有何不同
  • 科聪协作(复合)移动机器人整体解决方案
  • 【JVM】类加载器
  • 指针进阶(1)
  • ce从初阶到大牛(两台主机免密登录)
  • 22、Python -- 创建对象和使用对象
  • 【394.字符串解码】
  • element-ui vue2 iframe 嵌入外链新解
  • STM32F4X SDIO(一) SD卡介绍
  • 星闪技术 NearLink 一种专门用于短距离数据传输的新型无线通信技术
  • 工业自动化产品抗干扰笔记
  • 【Elasticsearch】es脚本编程使用详解
  • OpenCV学习(六)——图像算术运算(加法、融合与按位运算)
  • 计算机视觉 激光雷达结合无监督学习进行物体检测的工作原理
  • [Unity]给场景中的3D字体TextMesh增加描边方案一
  • 指针仪表读数YOLOV8NANO
  • GPT出大错了!原来GPT不是万能的!这就是人类存在的意义!
  • sqoop和flume简单安装配置使用
  • Systemverilog中使用interface连接testbench和dut的端口
  • 铁轨(Rails, ACM/ICPC CERC 1997, UVa 514)rust解法
  • Kubernetes - Ingress HTTP 负载搭建部署解决方案(新版本v1.21+)