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>2025-08-20 00:48:43 +1000
commit43814fb0143c0cddea903d1d107f69d527fdc559 (patch)
tree23e90e87cc7315a0dae73606e66766b1b2f3a47b /Controllers/MediaController.cs
parent8f258529e94b3c5b741a0315bcd75af24b5a8b5a (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);