feat: add MIME type support for raw file serving (#417)

This commit is contained in:
soup 2025-01-26 23:40:59 +01:00 committed by GitHub
parent f5b8881d35
commit 0609b64cff
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 18 additions and 3 deletions

View File

@ -3,9 +3,11 @@ package gist
import (
"archive/zip"
"bytes"
"strconv"
"github.com/thomiceli/opengist/internal/db"
"github.com/thomiceli/opengist/internal/web/context"
"strconv"
"github.com/thomiceli/opengist/internal/web/handlers"
)
func RawFile(ctx *context.Context) error {
@ -18,7 +20,8 @@ func RawFile(ctx *context.Context) error {
if file == nil {
return ctx.NotFound("File not found")
}
contentType := handlers.GetContentTypeFromFilename(file.Filename)
ctx.Response().Header().Set("Content-Type", contentType)
return ctx.PlainText(200, file.Content)
}

View File

@ -2,10 +2,12 @@ package handlers
import (
"errors"
"github.com/thomiceli/opengist/internal/web/context"
"html/template"
"path/filepath"
"strconv"
"strings"
"github.com/thomiceli/opengist/internal/web/context"
)
func GetPage(ctx *context.Context) int {
@ -77,3 +79,13 @@ func ParseSearchQueryStr(query string) (string, map[string]string) {
content := strings.TrimSpace(contentBuilder.String())
return content, metadata
}
func GetContentTypeFromFilename(filename string) string {
ext := strings.ToLower(filepath.Ext(filename))
switch ext {
case ".css":
return "text/css"
default:
return "text/plain"
}
}