.net Core 2.1和.net Core 2.2中上传文件的core webapi项目中接收参数问题

今天遇到一个问题,新建了一个.net Core 2.2项目,然后Controller里面加个了action,如下:

public IActionResult Excel2Mysql([FromForm]IFormFileCollection formData)

当用POSTMAN调试时候,formData的Count始终等于0,但是后来又建了一个基于net core 2.1的webapi,发现相同的调用,Count有值,后来弄了好久,发现2.2里面只能使用IFormCollection

只能这样调用:

public IActionResult Excel2Mysql([FromForm] IFormCollection formData)

里面使用IFormFileCollection files = formData.Files;获取文件

public IActionResult Excel2Mysql([FromForm] IFormCollection formData)

{

            string sWebRootFolder = _hostingEnvironment.WebRootPath;            
            StringBuilder sb = new StringBuilder();

            IFormFileCollection files = formData.Files;
            try
            {
                foreach (var file in files)
                {
                    if (file.Length > 0)
                    {
                        string sFileName = $"{Guid.NewGuid()}.xlsx";
                        FileInfo fileInfo = new FileInfo(Path.Combine(sWebRootFolder, sFileName));
                        using (FileStream fs = new FileStream(fileInfo.ToString(), FileMode.Create))
                        {
                            file.CopyTo(fs);
                            fs.Flush();
                        }
                        using (ExcelPackage package = new ExcelPackage(fileInfo))
                        {
                            
                            ExcelWorksheet worksheet = package.Workbook.Worksheets[1];
                            int rowCount = worksheet.Dimension.Rows;
                            int ColCount = worksheet.Dimension.Columns;
                            bool bHeaderRow = true;
                            for (int row = 1; row <= rowCount; row++)
                            {
                                for (int col = 1; col <= ColCount; col++)
                                {
                                    if (bHeaderRow)
                                    {
                                        if (worksheet.Cells[row, col].Value != null)
                                            sb.Append(worksheet.Cells[row, col].Value.ToString() + "\t");
                                    }
                                    else
                                    {
                                        if (worksheet.Cells[row, col].Value != null)
                                            sb.Append(worksheet.Cells[row, col].Value.ToString() + "\t");
                                    }
                                }
                                sb.Append(Environment.NewLine);
                            }
                            
                        }
                    }
                }
                return Content(sb.ToString());               
            }
            catch (Exception ex)
            {
                return Content(ex.Message);
            }

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值