From 590ca4ef56750caf7ede081e014da0cbfbcb1be4 Mon Sep 17 00:00:00 2001 From: cypherbeerus Date: Tue, 20 Jul 2021 20:30:20 +0530 Subject: [PATCH] add support for uploading multiple files to server --- .../Controllers/ServerController.Storage.cs | 43 +++++++++++++------ BTCPayServer/Views/Server/Files.cshtml | 10 ++--- 2 files changed, 36 insertions(+), 17 deletions(-) diff --git a/BTCPayServer/Controllers/ServerController.Storage.cs b/BTCPayServer/Controllers/ServerController.Storage.cs index 495a884a9..5ac8f4eed 100644 --- a/BTCPayServer/Controllers/ServerController.Storage.cs +++ b/BTCPayServer/Controllers/ServerController.Storage.cs @@ -148,23 +148,42 @@ namespace BTCPayServer.Controllers [HttpPost("server/files/upload")] - public async Task CreateFile(IFormFile file) + public async Task CreateFile(List files) { - if (!file.FileName.IsValidFileName()) + if (files.Count > 0) { - this.TempData.SetStatusMessageModel(new StatusMessageModel() + List fileIds = new List(); + 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() diff --git a/BTCPayServer/Views/Server/Files.cshtml b/BTCPayServer/Views/Server/Files.cshtml index 3388ec306..e82b46eaa 100644 --- a/BTCPayServer/Views/Server/Files.cshtml +++ b/BTCPayServer/Views/Server/Files.cshtml @@ -92,9 +92,9 @@ else @if (Model.StorageConfigured) { -
-

Upload File

- - -
+
+

Upload Files

+ + +
}