ASP.NET 核心中的多个文件上传到数据库

Multiple file upload to database in ASP.NET Core

我正在尝试将多个文件添加到我的数据库中。当我尝试进行单次上传时,它运行良好,并且基于我的核心层的编码器或编码器没有问题。

它很好地添加了这些文件,但它一直都在添加相同的文件,让我展示一下我的代码:

[HttpPost]
public IActionResult PostCategory(Category category, List<IFormFile> files)
{
        if (ModelState.IsValid)
        {
            int request;
            _unitOfWorkCat.RepositoryCategory.Create(category);
            request = HttpContext.Response.StatusCode;

            if (request == 200)
            {
                TempData["Message"] = "Kategori ekleme işleminiz başarılı!";
                TempData["JS"] = "showSuccess();";
                _unitOfWorkCat.Complete();

                foreach (var a in files)
                {
                    var File = _fileUploader.FileUploadToDatabase(files);
                    var x = File.Result;
                    int ID = category.CategoryID;
                    x.CategoryID = ID;
                    _unitOfWorkFR.RepositoryFileRepo.Create(x);
                    _unitOfWorkFR.Complete();
                }
            }
            else
            {
                TempData["Message"] = "Kategori ekleme işleminiz başarısız!";
                TempData["JS"] = "showError();";
            }

            return RedirectToAction("CategoryIndex");
        }
        else
        {
            TempData["Message"] = "Eklemek istediğiniz veri hatalı!";
            TempData["JS"] = "showError();";
            return RedirectToAction("CategoryIndex");
        }
}

我检查了一下我的观点,它发送的计数与我选择的计数相同。我想将这些文件添加到我的数据库中,但我不想为每个文件添加相同的文件。

感谢您的任何建议。

我用我的递归函数解决了我的问题。 这里是:

[HttpPost]
public IActionResult PostCategory(Category category, List<IFormFile> files)
{
        if (ModelState.IsValid)
        {
            int request;
            _unitOfWorkCat.RepositoryCategory.Create(category);
            request = HttpContext.Response.StatusCode;

            if (request == 200)
            {
                TempData["Message"] = "Kategori ekleme işleminiz başarılı!";
                TempData["JS"] = "showSuccess();";
                _unitOfWorkCat.Complete();

                int i = 0; int b = 1;
                    foreach (var a in files)
                    {
                       int count = files.Count;
                        if (i < count)
                        {
                            var fi = files.GetRange(i, b);
                            var File = _fileUploader.FileUploadToDatabase(fi);
                            var x = File.Result;
                            int ID = category.CategoryID;
                            x.CategoryID = ID;
                            _unitOfWorkFR.RepositoryFileRepo.Create(x);
                            _unitOfWorkFR.Complete();
                            i++;
                        }
                    }
            }
            else
            {
                TempData["Message"] = "Kategori ekleme işleminiz başarısız!";
                TempData["JS"] = "showError();";
            }

            return RedirectToAction("CategoryIndex");
        }
        else
        {
            TempData["Message"] = "Eklemek istediğiniz veri hatalı!";
            TempData["JS"] = "showError();";
            return RedirectToAction("CategoryIndex");
        }
}

谢谢。