diff --git a/.vscode/launch.json b/.vscode/launch.json index 69b973c3..9efe9077 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -51,7 +51,7 @@ "AYANOVA_USE_URLS": "http://*:7575;", "AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles", "AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles", - "AYANOVA_SERVER_TEST_MODE":"true", + "AYANOVA_SERVER_TEST_MODE":"false", "AYANOVA_SERVER_TEST_MODE_SEEDLEVEL":"small", "AYANOVA_SERVER_TEST_MODE_TZ_OFFSET":"-7", "AYANOVA_BACKUP_PG_DUMP_PATH":"C:\\data\\code\\PostgreSQLPortable_12.0\\App\\PgSQL\\bin\\" diff --git a/server/AyaNova/Controllers/LogoController.cs b/server/AyaNova/Controllers/LogoController.cs index 0f3aa5a3..f7ef0fe2 100644 --- a/server/AyaNova/Controllers/LogoController.cs +++ b/server/AyaNova/Controllers/LogoController.cs @@ -28,7 +28,7 @@ namespace AyaNova.Api.Controllers /// [ApiController] [ApiVersion("8.0")] - [Route("api/v{version:apiVersion}/Logo")] + [Route("api/v{version:apiVersion}/logo")] [Produces("application/json")] [Authorize] public class LogoController : ControllerBase @@ -115,14 +115,13 @@ namespace AyaNova.Api.Controllers /// Max 500 KiB total (512000 bytes) /// Must have full rights to Global object /// - /// One of "small", "medium", "large" - /// Logo image file + /// One of "small", "medium", "large" /// Accepted [Authorize] [HttpPost("{size}")] - [DisableFormValueModelBinding] + //[DisableFormValueModelBinding] [RequestSizeLimit(MAXIMUM_LOGO_SIZE)]//currently export file is 200kb * 50 maximum at a time = 15mb https://github.com/aspnet/Announcements/issues/267 - public async Task UploadAsync([FromRoute] string size, IFormFile uploadFile) + public async Task UploadAsync([FromRoute] string size)//, List files /// Logo image file { //https://docs.microsoft.com/en-us/aspnet/core/mvc/models/file-uploads?view=aspnetcore-3.1#upload-small-files-with-buffered-model-binding-to-a-database @@ -148,24 +147,28 @@ namespace AyaNova.Api.Controllers ct.Logo.Add(logo); await ct.SaveChangesAsync(); } + + var file = Request.Form.Files[0]; + + //var file=files[0]; using (var memoryStream = new MemoryStream()) { - await uploadFile.CopyToAsync(memoryStream); - if (memoryStream.Length < 2097152) - return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_LENGTH_EXCEEDED, null, "Logo files must be smaller than 500KiB maximum")); + await file.CopyToAsync(memoryStream); + if (memoryStream.Length > MAXIMUM_LOGO_SIZE) + return BadRequest(new ApiErrorResponse(ApiErrorCode.VALIDATION_LENGTH_EXCEEDED, null, $"Logo files must be smaller than {MAXIMUM_LOGO_SIZE} maximum")); switch (size) { case "small": logo.Small = memoryStream.ToArray(); - logo.SmallType = uploadFile.ContentType; + logo.SmallType = file.ContentType; break; case "medium": logo.Medium = memoryStream.ToArray(); - logo.MediumType = uploadFile.ContentType; + logo.MediumType = file.ContentType; break; case "large": logo.Large = memoryStream.ToArray(); - logo.LargeType = uploadFile.ContentType; + logo.LargeType = file.ContentType; break; }