in src/AdminSite/Controllers/ApplicationConfigController.cs [145:206]
public IActionResult PostUpload(List<IFormFile> files)
{
if (!(files?.Any() == true))
{
TempData["Upload"] = "No files to upload";
return RedirectToAction("Index");
}
if (files.Count > 2)
{
TempData["Upload"] = "No more than two files can be uploaded";
return RedirectToAction("Index");
}
foreach (var file in files)
{
int maxLength = 1024 * 1024 * 5; //5 MB
if (file.Length > maxLength)
{
TempData["Upload"] = "File is too large, max size of file for upload is 5 MB";
return RedirectToAction("Index");
}
if (file.Length == 0)
{
TempData["Upload"] = "File is empty";
return RedirectToAction("Index");
}
var fileExtension = Path.GetExtension(file.FileName).ToLowerInvariant();
if (fileExtension != ".png" && fileExtension != ".ico")
{
TempData["Upload"] = "Only .png or .ico files can be uploaded";
return RedirectToAction("Index");
}
var appConfigNames = this.appConfigService.GetAllApplicationConfiguration().Select(a => a.Name);
if (!appConfigNames.Contains("LogoFile") || !appConfigNames.Contains("FaviconFile"))
{
TempData["Upload"] = "LogoFile or FaviconFile application config settings are missing in the database";
return RedirectToAction("Index");
}
if (this.appConfigService.UploadFileToDatabase(file, fileExtension) == false)
{
TempData["Upload"] = "File Upload failed!";
return RedirectToAction("Index");
}
}
if (files.Count == 1)
{
TempData["Upload"] = files.FirstOrDefault().FileName + " uploaded successfully";
}
else
{
TempData["Upload"] = files[0].FileName + " and " + files[1].FileName + " uploaded successfully";
}
return RedirectToAction("Index");
}