fix: ext issue

This commit is contained in:
Rogee
2024-09-06 18:14:26 +08:00
parent f8df3a59f0
commit 6f4b72da36
2 changed files with 31 additions and 7 deletions

View File

@@ -201,7 +201,7 @@ func (t *TClient) getExtByFilenameAndMimeType(filename, mimeType string) string
if filename != "" && strings.Contains(filename, ".") { if filename != "" && strings.Contains(filename, ".") {
ext = filepath.Ext(filename) ext = filepath.Ext(filename)
if ext != "" { if ext != "" {
return ext return strings.ToLower(ext)
} }
} }

View File

@@ -5,6 +5,7 @@ import (
"context" "context"
"mime" "mime"
"path/filepath" "path/filepath"
"strings"
"testing" "testing"
"exporter/database/telegram_resource/public/table" "exporter/database/telegram_resource/public/table"
@@ -83,11 +84,34 @@ func Test_PublishGrpc(t *testing.T) {
} }
func Test_Ext(t *testing.T) { func Test_Ext(t *testing.T) {
name := "abc.jpg" name := "abc.MOV"
ext := filepath.Ext(name) mime := "video/quicktime"
t.Logf("Name: %s, Ext: %s", name, ext) ext := getExtByFilenameAndMimeType(name, mime)
name = "abc_jpg"
ext = filepath.Ext(name)
t.Logf("Name: %s, Ext: %s", name, ext) t.Logf("Name: %s, Ext: %s", name, ext)
} }
func getExtByFilenameAndMimeType(filename, mimeType string) string {
ext := ""
if filename != "" && strings.Contains(filename, ".") {
ext = filepath.Ext(filename)
if ext != "" {
return strings.ToLower(ext)
}
}
exts, err := mime.ExtensionsByType(mimeType)
if err != nil {
return ext
}
if len(exts) == 0 {
switch mimeType {
case "application/rar":
ext = ".rar"
}
} else {
ext = exts[len(exts)-1]
}
return strings.ToLower(ext)
}