summaryrefslogtreecommitdiff
path: root/Controllers
diff options
context:
space:
mode:
Diffstat (limited to 'Controllers')
-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);