diff --git a/utils.go b/utils.go index a0a4b1b..ae5f0a8 100644 --- a/utils.go +++ b/utils.go @@ -405,8 +405,12 @@ func loStringNotEmpty(s string, _ int) bool { return s != "" } -func mimeTypeFromUrl(url string) string { - ext := path.Ext(url) +func mimeTypeFromUrl(urlString string) string { + parsedUrl, err := url.Parse(urlString) + if err != nil { + return "" + } + ext := path.Ext(parsedUrl.Path) mimeType := mime.TypeByExtension(ext) if mimeType == "" { switch ext { diff --git a/utils_test.go b/utils_test.go index 2de278a..7db36d3 100644 --- a/utils_test.go +++ b/utils_test.go @@ -178,6 +178,8 @@ func Test_mimeTypeFromUrl(t *testing.T) { {url: "https://example.com/profile.jpg", want: "image/jpeg"}, {url: "https://example.com/profile.jpeg", want: "image/jpeg"}, {url: "https://example.com/profile.png", want: "image/png"}, + {url: "https://example.com/profile.png?v=3", want: "image/png"}, + {url: "/profile.png?v=3", want: "image/png"}, } for i, tt := range tests { t.Run(strconv.Itoa(i), func(t *testing.T) {