GOOGLE ADS

lunes, 2 de mayo de 2022

Obtener la extensión de un MimeType

Quiero obtener la extensión de un MimeType.

Por ejemplo:

video/mp4  ----> mp4
application/x-rar-compressed ----> rar
text/plain ----> txt
application/pdf ----> pdf

Para guardar mi archivo en Windows o Linux, tengo este método que me permite descargar un archivo desde una URL. Entonces, solo puedo guardarlo sin extensión (no quiero eso).

Este método solo me permite obtener MimeType, no la extensión.

public void downloadImage() {
String dirPath = "/home/MyPC/Downloaded";
String fileName = "My downloaded file";

URL fetchFile = new URL(IMAGE_URL);
byte[] fileAsArray = Resources.toByteArray(fetchFile);

//Getting the MimeType
String mimeType = URLConnection.guessContentTypeFromStream(new ByteArrayInputStream(fileAsArray));
System.out.println(mimeType);
File fileToWriteTo = new File(dirPath.concat("/" + fileName));
//Saving the file using Guava
Files.write(fileAsArray, fileToWriteTo);
}

¿Cómo puedo escribir un archivo con extensión usando MimeType?


Solución del problema

Generalmente hay dos formas:


  • tener un mapeo de MimeTypes a extensiones;

  • calcularlo, usando alguna lógica;


El segundo enfoque realmente no es bueno, así que lo ofrezco solo para completarlo. Para el primer enfoque, puede usar este recurso: https://www.freeformatter.com/mime-types-list.html

Yo usaría HashMap<K,V>: la clave es MimeType y el valor es la extensión (o similar).

No hay comentarios.:

Publicar un comentario

Flutter: error de rango al acceder a la respuesta JSON

Estoy accediendo a una respuesta JSON con la siguiente estructura. { "fullName": "FirstName LastName", "listings...