summaryrefslogtreecommitdiff
path: root/Controllers/MediaController.cs
diff options
context:
space:
mode:
authorJake Mannens <jake@asger.xyz>2023-08-28 13:15:40 +1000
committerJake Mannens <jake@asger.xyz>2023-08-28 13:15:40 +1000
commit9f9caca192ac5b440ed8dccce76861de5978939d (patch)
tree87a93191376d2bb1ab91b43854c293f0b3d827df /Controllers/MediaController.cs
parentff1b492c53b44fa10e7cd4170b4cfb0b7bfdc6e9 (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.cs25
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);