ryoakg
12/14/2017 - 12:53 AM

determin-file-extension-from-mime-type.clj

(set-env! :dependencies '[ ;; https://mvnrepository.com/artifact/org.apache.tika/tika-core
                          [org.apache.tika/tika-core "1.16"]])

(let [mime-types (org.apache.tika.mime.MimeTypes/getDefaultMimeTypes)]
  (defn get-file-extension [mime-type]
    (-> mime-types
        (.forName mime-type)
        .getExtension))
  (defn get-file-extensions [mime-type]
    (-> mime-types
        (.forName mime-type)
        .getExtensions)))

(get-file-extension "image/png")
;; => ".png"
(get-file-extensions "image/png")
;; => [".png"]

(get-file-extension "image/jpeg")
;; => ".jpg"
(get-file-extensions "image/jpeg")
;; => [".jpg" ".jpeg" ".jpe" ".jif" ".jfif" ".jfi"]

(get-file-extension "text/html")
;; => ".html"
(get-file-extensions "text/html")
;; => [".html" ".htm"]