forked from Kieran/void.cat
Guess mime type if not set
This commit is contained in:
parent
80880a18a8
commit
1009ff1e92
@ -1,6 +1,7 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.AspNetCore.Mvc.Filters;
|
using Microsoft.AspNetCore.Mvc.Filters;
|
||||||
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
||||||
|
using Microsoft.AspNetCore.StaticFiles;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using VoidCat.Model;
|
using VoidCat.Model;
|
||||||
using VoidCat.Model.Paywall;
|
using VoidCat.Model.Paywall;
|
||||||
@ -49,13 +50,23 @@ namespace VoidCat.Controllers
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var uid = HttpContext.GetUserId();
|
var uid = HttpContext.GetUserId();
|
||||||
|
var mime = Request.Headers.GetHeader("V-Content-Type");
|
||||||
|
var filename = Request.Headers.GetHeader("V-Filename");
|
||||||
|
if (string.IsNullOrEmpty(mime) && !string.IsNullOrEmpty(filename))
|
||||||
|
{
|
||||||
|
if (new FileExtensionContentTypeProvider().TryGetContentType(filename, out var contentType))
|
||||||
|
{
|
||||||
|
mime = contentType;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var meta = new SecretVoidFileMeta()
|
var meta = new SecretVoidFileMeta()
|
||||||
{
|
{
|
||||||
MimeType = Request.Headers.GetHeader("V-Content-Type"),
|
MimeType = mime,
|
||||||
Name = Request.Headers.GetHeader("V-Filename"),
|
Name = filename,
|
||||||
Description = Request.Headers.GetHeader("V-Description"),
|
Description = Request.Headers.GetHeader("V-Description"),
|
||||||
Digest = Request.Headers.GetHeader("V-Full-Digest"),
|
Digest = Request.Headers.GetHeader("V-Full-Digest"),
|
||||||
Size = (ulong?)Request.ContentLength ?? 0UL,
|
Size = (ulong?) Request.ContentLength ?? 0UL,
|
||||||
Uploader = uid
|
Uploader = uid
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -67,7 +78,8 @@ namespace VoidCat.Controllers
|
|||||||
|
|
||||||
if (cli)
|
if (cli)
|
||||||
{
|
{
|
||||||
var urlBuilder = new UriBuilder(Request.IsHttps ? "https" : "http", Request.Host.Host, Request.Host.Port ?? 80,
|
var urlBuilder = new UriBuilder(Request.IsHttps ? "https" : "http", Request.Host.Host,
|
||||||
|
Request.Host.Port ?? 80,
|
||||||
$"/d/{vf.Id.ToBase58()}");
|
$"/d/{vf.Id.ToBase58()}");
|
||||||
|
|
||||||
return Content(urlBuilder.Uri.ToString(), "text/plain");
|
return Content(urlBuilder.Uri.ToString(), "text/plain");
|
||||||
@ -229,4 +241,4 @@ namespace VoidCat.Controllers
|
|||||||
|
|
||||||
public StrikePaywallConfig? Strike { get; init; }
|
public StrikePaywallConfig? Strike { get; init; }
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user