Problema con el tipo MIME de los pdf cuando se suben con Firefox

Hay veces que para indicar que solo subamos un archivo pdf recurrimos a comprobar el tipo MIME del archivo que se sube. Al principio podemos pensar que el archivo es erróneo y no cumple con el estándar, y puede que así sea, pero otra veces es correcto y la aplicación no lo reconoce como “application/pdf”.

Si se busca por Google el error, se encontrará que a veces el tipo MIME que devuelve es “application/download” o similar cuando estamos usando Firefox. Si nos vamos al gestor de incidencia de Mozilla, Bugzilla encontramos el siguiente bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=373621

En el comentario número 59 se sintetiza el estado del bug y el motivo: es un problema de corrupción de un fichero de Firefox donde se guardan los tipos MIME y su asociación. En este caso, se han asociado los ficheros pdf con otro tipo MIME. Esto ocurre desde el año 2005 y no es problema propio del navegador sino del usuario, que modifica este fichero visitando páginas web, instalando aplicaciones, etc…

La solución es tan fácil como borrar el archivo mimeTypes.rdf y reiniciar Firefox:
https://support.mozilla.org/es/questions/932120
http://support.cayuse.com/faq/why-do-i-get-mime-type-error-when-attempting-upload-file-firefox

Si se está usando Java 7 se puede caer en la tentación de usar Files.probeContentType(path) para devolver el tipo MIME del archivo, pero ¡PELIGRO!, el método falla bastante y es dependiente del sistema operativo. Hay casos en el que funciona bien en Ubuntu pero en Windows y OSX devuelve un null. Esta opción está marcada como la mejor respuesta en http://stackoverflow.com/questions/51438/getting-a-files-mime-type-in-java Afortunadamente, avisan en los comentarios.

Otra opción y la más recomendada es usar Apache Tika para obtener el tipo MIME. El enlace os lleva directo a la parte de detección del contenido.

Por si a alguien se le ocurre, comprobar si la extensión es pdf para darlo como válido es la peor idea que se pueda tener. Pueden estar subiendo cualquier cosa.

Anuncios

Un pensamiento en “Problema con el tipo MIME de los pdf cuando se suben con Firefox

  1. Pingback: Uso de Apache tTika | Sobre IT y más

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s