From 43814fb0143c0cddea903d1d107f69d527fdc559 Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Mon, 28 Aug 2023 13:15:40 +1000 Subject: Modified media controller to take file metadata and checksums from form content headers --- Controllers/MediaController.cs | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'Controllers') diff --git a/Controllers/MediaController.cs b/Controllers/MediaController.cs index b476dec..6e04670 100644 --- a/Controllers/MediaController.cs +++ b/Controllers/MediaController.cs @@ -1,4 +1,5 @@ using HyperBooru.Services; +using HyperBooru.Util; using ImageMagick; using Microsoft.AspNetCore.Mvc; using MimeDetective; @@ -76,12 +77,7 @@ public class MediaController : Controller { } [HttpPost] - public IActionResult Upload( - [FromForm] string? checksum, - [FromForm] DateTime? lastAccessTime, - [FromForm] DateTime? lastWriteTime, - [FromForm] DateTime? createTime) { - + public IActionResult Upload() { if(Request.Form.Files.Count == 0) return BadRequest("No files"); @@ -89,10 +85,25 @@ public class MediaController : Controller { foreach(var formFile in Request.Form.Files) { try { + // Parse timestamps from headers + DateTime? lastAccessTime = + formFile.Headers["X-HyperBooru-LastAccessTime"] + .ElementAtOrDefault(0)? + .TryParseDateTimeUtc(); + DateTime? lastWriteTime = + formFile.Headers["X-HyperBooru-LastWriteTime"] + .ElementAtOrDefault(0)? + .TryParseDateTimeUtc(); + DateTime? createTime = + formFile.Headers["X-HyperBooru-CreateTime"] + .ElementAtOrDefault(0)? + .TryParseDateTimeUtc(); + media = mediaService.Create( formFile.OpenReadStream(), formFile.FileName, - checksum, + formFile.Headers["X-HyperBooru-Checksum"] + .ElementAtOrDefault(0), lastAccessTime, lastWriteTime, createTime); -- cgit v1.3