diff options
| author | Jake Mannens <jake@asger.xyz> | 2023-08-28 13:15:40 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2023-08-28 13:15:40 +1000 |
| commit | 9f9caca192ac5b440ed8dccce76861de5978939d (patch) | |
| tree | 87a93191376d2bb1ab91b43854c293f0b3d827df /Controllers/MediaController.cs | |
| parent | ff1b492c53b44fa10e7cd4170b4cfb0b7bfdc6e9 (diff) | |
Modified media controller to take file metadata and checksums from form content headers
Diffstat (limited to 'Controllers/MediaController.cs')
| -rw-r--r-- | Controllers/MediaController.cs | 25 |
1 files changed, 18 insertions, 7 deletions
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); |
