add support for uploading multiple files to server

This commit is contained in:
cypherbeerus 2021-07-20 20:30:20 +05:30 committed by Andrew Camilleri
parent 04726b3ee4
commit 590ca4ef56
2 changed files with 36 additions and 17 deletions

View file

@ -148,23 +148,42 @@ namespace BTCPayServer.Controllers
[HttpPost("server/files/upload")]
public async Task<IActionResult> CreateFile(IFormFile file)
public async Task<IActionResult> CreateFile(List<IFormFile> files)
{
if (!file.FileName.IsValidFileName())
if (files.Count > 0)
{
this.TempData.SetStatusMessageModel(new StatusMessageModel()
List<string> fileIds = new List<string>();
foreach (IFormFile file in files)
{
Message = "Invalid file name",
Severity = StatusMessageModel.StatusSeverity.Error
});
if (!file.FileName.IsValidFileName())
{
this.TempData.SetStatusMessageModel(new StatusMessageModel()
{
Message = "Invalid file name",
Severity = StatusMessageModel.StatusSeverity.Error
});
continue;
}
var newFile = await _FileService.AddFile(file, GetUserId());
fileIds.Add(newFile.Id);
}
if (fileIds.Count == 1)
{
return RedirectToAction(nameof(Files), new
{
statusMessage = "File added!",
fileId = fileIds[0]
});
}
else
{
return RedirectToAction(nameof(Files));
}
}
else
{
return RedirectToAction(nameof(Files));
}
var newFile = await _FileService.AddFile(file, GetUserId());
return RedirectToAction(nameof(Files), new
{
statusMessage = "File added!",
fileId = newFile.Id
});
}
private string GetUserId()

View file

@ -92,9 +92,9 @@ else
@if (Model.StorageConfigured)
{
<form asp-action="CreateFile" method="post" enctype="multipart/form-data">
<h4 class="mt-5 mb-3">Upload File</h4>
<input type="file" class="form-control mb-3" name="file" id="file" required>
<button class="btn btn-primary" role="button"><span class="fa fa-plus"></span> Upload file</button>
</form>
<form asp-action="CreateFile" method="post" enctype="multipart/form-data">
<h4 class="mt-5 mb-3">Upload Files</h4>
<input multiple type="file" class="form-control mb-3" name="files" id="file" required>
<button class="btn btn-primary" role="button"><span class="fa fa-plus"></span> Upload files</button>
</form>
}