From 4526569ba77af4ec654bedc984b61bd379378be6 Mon Sep 17 00:00:00 2001 From: Aidan Welch Date: Thu, 19 Sep 2024 14:14:34 +0200 Subject: [PATCH 1/2] mime: lists the "common types" listed on MDN Simply implements the first recommended type for each file extension listed in MDN https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types However, this excludes ".3gp" and ".3gp2" as from from I can tell it is not possible to know if it is video or audio solely from file extension. As far as I can tell there are two previous PRs that each implemented a type simply because they were in common use. Updates golang/go#69530 --- src/mime/type.go | 91 +++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 75 insertions(+), 16 deletions(-) diff --git a/src/mime/type.go b/src/mime/type.go index c86ebd3442c1d..ff49a8c166a23 100644 --- a/src/mime/type.go +++ b/src/mime/type.go @@ -51,22 +51,81 @@ func setMimeTypes(lowerExt, mixExt map[string]string) { } var builtinTypesLower = map[string]string{ - ".avif": "image/avif", - ".css": "text/css; charset=utf-8", - ".gif": "image/gif", - ".htm": "text/html; charset=utf-8", - ".html": "text/html; charset=utf-8", - ".jpeg": "image/jpeg", - ".jpg": "image/jpeg", - ".js": "text/javascript; charset=utf-8", - ".json": "application/json", - ".mjs": "text/javascript; charset=utf-8", - ".pdf": "application/pdf", - ".png": "image/png", - ".svg": "image/svg+xml", - ".wasm": "application/wasm", - ".webp": "image/webp", - ".xml": "text/xml; charset=utf-8", + ".7z": "application/x-7z-compressed", + ".aac": "audio/aac", + ".abw": "application/x-abiword", + ".apng": "image/apng", + ".arc": "application/x-freearc", + ".avi": "video/x-msvideo", + ".avif": "image/avif", + ".azw": "application/vnd.amazon.ebook", + ".bin": "application/octet-stream", + ".bmp": "image/bmp", + ".bz": "application/x-bzip", + ".bz2": "application/x-bzip2", + ".cda": "application/x-cdf", + ".csh": "application/x-csh", + ".css": "text/css; charset=utf-8", + ".csv": "text/csv", + ".doc": "application/msword", + ".docx": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", + ".eot": "application/vnd.ms-fontobject", + ".epub": "application/epub+zip", + ".gif": "image/gif", + ".gz": "application/gzip", + ".htm": "text/html; charset=utf-8", + ".html": "text/html; charset=utf-8", + ".ico": "image/vnd.microsoft.icon", + ".ics": "text/calendar", + ".jar": "application/java-archive", + ".jpeg": "image/jpeg", + ".jpg": "image/jpeg", + ".js": "text/javascript; charset=utf-8", + ".json": "application/json", + ".jsonld": "application/ld+json", + ".mid": "audio/midi", + ".midi": "audio/midi", + ".mjs": "text/javascript; charset=utf-8", + ".mp3": "audio/mpeg", + ".mp4": "video/mp4", + ".mpeg": "video/mpeg", + ".mpkg": "application/vnd.apple.installer+xml", + ".odp": "application/vnd.oasis.opendocument.presentation", + ".ods": "application/vnd.oasis.opendocument.spreadsheet", + ".odt": "application/vnd.oasis.opendocument.text", + ".oga": "audio/ogg", + ".ogv": "video/ogg", + ".ogx": "application/ogg", + ".opus": "audio/ogg", + ".otf": "font/otf", + ".pdf": "application/pdf", + ".png": "image/png", + ".ppt": "application/vnd.ms-powerpoint", + ".pptx": "application/vnd.openxmlformats-officedocument.presentationml.presentation", + ".rar": "application/vnd.rar", + ".rtf": "application/rtf", + ".sh": "application/x-sh", + ".svg": "image/svg+xml", + ".tar": "application/x-tar", + ".tif": "image/tiff", + ".tiff": "image/tiff", + ".ts": "video/mp2t", + ".ttf": "font/ttf", + ".txt": "text/plain", + ".vsd": "application/vnd.visio", + ".wasm": "application/wasm", + ".wav": "audio/wav", + ".weba": "audio/webm", + ".webm": "video/webm", + ".webp": "image/webp", + ".woff": "font/woff", + ".woff2": "font/woff2", + ".xhtml": "application/xhtml+xml", + ".xls": "application/vnd.ms-excel", + ".xlsx": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + ".xml": "text/xml; charset=utf-8", + ".xul": "application/vnd.mozilla.xul+xml", + ".zip": "application/zip", } var once sync.Once // guards initMime From 3cc1e3ceb25790687b97087d9b78796ea731dc4a Mon Sep 17 00:00:00 2001 From: Aidan Welch Date: Fri, 20 Sep 2024 03:33:16 +0200 Subject: [PATCH 2/2] mime: extend builtinTypesLower Comment with the source of the builtin types Updates golang/go#69530 --- src/mime/type.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mime/type.go b/src/mime/type.go index ff49a8c166a23..00f6f6c541109 100644 --- a/src/mime/type.go +++ b/src/mime/type.go @@ -50,6 +50,8 @@ func setMimeTypes(lowerExt, mixExt map[string]string) { } } +// These are just commomly used types mostly taken from +// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types var builtinTypesLower = map[string]string{ ".7z": "application/x-7z-compressed", ".aac": "audio/aac",