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");
}
}
谢谢。
我正在尝试将多个文件添加到我的数据库中。当我尝试进行单次上传时,它运行良好,并且基于我的核心层的编码器或编码器没有问题。
它很好地添加了这些文件,但它一直都在添加相同的文件,让我展示一下我的代码:
[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");
}
}
谢谢。