asp.net core实现文件上传功能

 上传文件在Web应用程序中是一个常见的功能。在asp.net core中上传文件并保存在服务器上,是很容易的。下面就来演示一下怎么样在 ASP.NET Core项目中进行文件上传。

整个文件将读入一个 IFormFile。IFormFile 是用于处理或保存文件的 C# 表示形式。

文件上传使用的磁盘和内存取决于并发文件上传的数量和大小。如果应用尝试缓冲过多上传,站点就会在内存或磁盘空间不足时崩溃。如果文件上传的大小或频率会消耗应用资源,请使用流式传输。

会将大于 64 KB 的所有单个缓冲文件从内存移到磁盘的临时文件。

用于较大请求的 ASPNETCORE_TEMP 临时文件将写入环境变量中命名的位置。如果未 ASPNETCORE_TEMP 定义,文件将写入当前用户的临时文件夹。

定义接口,使用FromForm接收数据

/// <summary>
        /// 添加反馈
        /// </summary>
        /// <param name="formData">文件</param>
        /// <param name="UserID">用户id</param>
        /// <param name="content">反馈内容</param>
        /// <returns></returns>
        [TypeFilter(typeof(AuthorizationFilterAttribute))]
        [ApiResponseFilter]
        [ApiExceptionFilter]
        [HttpPost]
        [Route("SaveUserfeedback")]
        public bool SaveUserfeedback([FromForm] IFormFileCollection formData, [FromForm] uint UserID, [FromForm] string content)
        {
            SaveUserfeedback module = new SaveUserfeedback
            {
                UserID = UserID,
                content = content
            };
            return _ICorrectiontypesBll.SaveUserfeedback(formData, module);
        }

对上传的数据进行保存

private string UploadFile(IFormFile formFile)
        {
            var currentDate = DateTime.Now;
            string webRootPath = AppContext.BaseDirectory;
            var filePath = $"/Template/UserfeedbackUploadFile/{currentDate:yyyyMMdd}/";
            if (!Directory.Exists(webRootPath + filePath))
            {
                Directory.CreateDirectory(webRootPath + filePath);
            }
            var saveName = Guid.NewGuid().ToString();
            saveName = saveName + ".jpg";
            string filepath = webRootPath + filePath + saveName;
            using (var fs = System.IO.File.Create(filepath))
            {
                formFile.CopyTo(fs);
                fs.Flush();
            }


            return filePath + saveName;
        }

技术群:添加小编微信并备注进群

小编微信:mm1552923   

公众号:dotNet编程大全    

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值