This commit is contained in:
2020-08-07 22:24:49 +00:00
parent df8541c8d4
commit bd184dd468
2 changed files with 15 additions and 12 deletions

2
.vscode/launch.json vendored
View File

@@ -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\\"

View File

@@ -28,7 +28,7 @@ namespace AyaNova.Api.Controllers
/// </summary>
[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
/// </summary>
/// <param name="size">One of "small", "medium", "large"</param>
/// <param name="uploadFile">Logo image file</param>
/// <param name="size">One of "small", "medium", "large"</param>
/// <returns>Accepted</returns>
[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<IActionResult> UploadAsync([FromRoute] string size, IFormFile uploadFile)
public async Task<IActionResult> UploadAsync([FromRoute] string size)//, List<IFormFile> files /// <param name="files">Logo image file</param>
{
//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;
}