Obtenez le MimeType à partir du contenu du fichier. MimeType peut être déduit de l'extension du fichier, mais comme il est utilisé à des fins où il est difficile de le réécrire, il est obtenu à partir du contenu du fichier.
Utilisez Apache Tika.
Cependant, le résultat dépend du nom du fichier à moins qu'il n'implique TikaInputStream
.
Installez et utilisez Apache Tika Core de Maven. J'ai utilisé «1.21» pour la vérification.
C'est un exemple approximatif, mais c'est un exemple pour obtenir MimeType pour tous les fichiers sous src / main / resources
.
En remarque, le type «org.apache.tika.metadata.Metadata» est nommé parce qu'il est nommé type «Metadata» de Kotlin.
Lire le fichier dans les ressources et générer MimeType
import java.io.File
import org.apache.tika.Tika
import org.apache.tika.io.TikaInputStream
import org.apache.tika.metadata.Metadata as TikaMetadata
fun main() {
val resourcesDir = File(System.getProperty("user.dir") + "/src/main/resources")
val metaData = TikaMetadata()
val tika = Tika()
resourcesDir.listFiles().map {
val tikaStream = TikaInputStream.get(it.toURI(), metaData)
//L'extension est unifiée à lowerCase pour le tri
it.name.split(".").last().toLowerCase() + " -> " + tika.detect(tikaStream, metaData)
}.sorted().forEach {
//Sortie après tri
println(it)
}
}
C'est le résultat de jeter les fichiers et des échantillons qui se trouvaient dans cette zone et de les retourner. Cela peut être pris de manière presque unique. J'ai également réécrit l'extension et l'ai essayé, et cela a plutôt bien fonctionné.
7z -> application/x-7z-compressed
avi -> video/x-msvideo
docx -> application/vnd.openxmlformats-officedocument.wordprocessingml.document
exe -> application/x-dosexec
flv -> video/x-flv
html -> text/html
jpg -> image/jpeg
jpg -> image/jpeg
m3u -> text/plain
mkv -> video/x-matroska
mkv -> video/x-matroska
mkv -> video/x-matroska
mkv -> video/x-matroska
mov -> video/quicktime
mov -> video/quicktime
mov -> video/quicktime
mov -> video/quicktime
mp3 -> audio/mpeg
mp4 -> video/mp4
mp4 -> video/mp4
mp4 -> video/mp4
mp4 -> video/mp4
mp4 -> video/mp4
mp4 -> video/mp4
mp4 -> video/mp4
mp4 -> video/mp4
mp4 -> video/mp4
mp4 -> video/x-m4v
mpg -> video/mpeg
mpg -> video/mpeg
mpg -> video/mpeg
msi -> application/x-ms-installer
pdf -> application/pdf
png -> image/png
pptx -> application/vnd.openxmlformats-officedocument.presentationml.presentation
svg -> image/svg+xml
ts -> application/octet-stream
vcmf -> application/octet-stream
vob -> video/mpeg
webm -> video/webm
webm -> video/webm
webm -> video/webm
webm -> video/webm
zip -> application/zip
J'ai utilisé Tika cette fois, mais la méthode utilisant ʻURL Connection et
mime-util` est majeure dans le sens où elle sort dans la recherche.
Cependant, ceux-ci avaient des difficultés dans la précision de détection et la poursuite de la maintenance, donc cette fois j'ai utilisé Tika comme essai.