Pregunta bastante simple, pero parece que no puede encontrarla en ningún lado en línea. Estoy tratando de hacer un programa que, según el tipo de archivo, me dé la extensión.
file
mime-types
Joe Scotto
fuente
fuente
Respuestas:
No,
image/jpg
no es lo mismoimage/jpeg
, soloimage/jpeg
se reconoce como el tipo mime real para archivos JPEG.Ver https://tools.ietf.org/html/rfc3745 , https://www.w3.org/Graphics/JPEG/ .
Servir el tipo de contenido incorrecto
image/jpg
a IE puede causar problemas, consulte http://www.bennadel.com/blog/2609-internet-explorer-aborts-images-with-the-wrong-mime-type.htm .fuente
image/jpeg jpeg jpg;image/jpg jpeg jpg;
Para aquellos a los que podría ayudar, uso esta lista como referencia para definir mi tipo de contenido cuando tengo que lidiar con imágenes en mi aplicación.
Dice que la extensión jpg se puede declarar con
Content-type : image/jpeg
No hay ningún
image/jpg
atributo para el tipo de contenido.fuente
tl; dr los "estándares" son un desastre hodge-podge; ¡depende a quién le preguntes!
En general, no parece haber ningún tipo MIME
image/jpg
. Sin embargo, en la práctica, casi todo el software maneja bien los archivos de imagen llamados "*.jpg
".Este tema en particular es confuso porque la asociación variable de la extensión de nombre de archivo asociada a un tipo MIME depende de qué organización creó la tabla de extensiones de nombre de archivo para los tipos MIME. En otras palabras, la extensión de nombre de archivo
.jpg
podría ser muchas cosas diferentes.Por ejemplo, aquí hay tres "listas completas" y un RFC que varían alrededor de varias extensiones de nombre de archivo en formato de imagen JPEG y los tipos MIME asociados.
.jfif
,.jfif-tbnl
,.jpe
,.jpeg
,.jpg
→image/jpeg
.jfif
,.jpe
,.jpeg
,.jpg
→image/pjpeg
.jpeg
,.jpg
→image/jpeg
.jpeg
,.jpg
→image/x-citrix-jpeg
.pjpeg
→image/pjpeg
(este documento enumera " nombres" , no " extensiones de nombre de archivo ")
jpg
no mencionadojpeg
→ ver RFC 2045 (sin mención), ver RFC 2046 →image/jpeg
13JPEG
→video/JPEG
jpeg2000
→video/jpeg2000
jpm
→image/jpm
( JPEG 2000 )jpx
→image/jpx
( JPEG 2000 )vnd.sealedmedia.softseal.jpg
→image/vnd.sealedmedia.softseal.jpg
.jpg
extensión de archivo no mencionada.jpeg
extensión de archivo no mencionada.jp2
,.jpg2
→image/jp2
( JPEG 2000 ) 9.jpf
,.jpx
→image/jpx
( datos de imagen codificados JPEG 2000 ISO-JPEG2000-2 ) 10.mj2
,.mjp2
→video/mj2
( Motion JPEG 2000 ) 11.jpm
,.jpgm
→image/jpm
( Perfiles y extensiones JPEG 2000 ) 12¡Estas "listas completas" y RFC no tienen el tipo MIME
image/jpg
! Pero para MIME escribaimage/jpeg
algunas listas no tienen diferentes extensiones de nombre de archivo (.jpeg
,.jpg
, ...). Otras listas no mencionanimage/jpeg
.Además, hay diferentes tipos de formatos de imagen JPEG (por ejemplo , formato de imagen JPEG progresivo , JPEG 2000 , etc.) y "Extensiones JPEG" que pueden superponerse o no en la extensión del nombre de archivo y el tipo MIME declarado.
Otra cosa confusa es que RFC 3745 no parece coincidir con los tipos de medios de IANA, pero se supone que RFC 3745 informa el documento de tipos de medios de IANA . Por ejemplo, en RFC 3745
.jpf
es la extensión de archivo preferida para,image/jpx
pero en los tipos de medios de IANA, el nombrejpf
no está presente (¡y ese documento de la IANA hace referencia a RFC 3745 !).Otra cosa confusa es que los tipos de medios de IANA enumeran "nombres" pero no enumeran "extensiones de nombre de archivo". Esto es a propósito, pero confunde el esfuerzo de asignar extensiones de nombre de archivo a tipos MIME.
Otra cosa confusa: es " mime ", o " MIME ", o " tipo MIME ", o " tipo mime ", o " mime / type ", o " tipo de medio "⁉ 😧
El documento aparentemente más oficial de IANA es sorprendentemente inadecuado. No se ha registrado ningún tipo MIME para la extensión de archivo,
.jpg
pero existe un valor imparvnd.sealedmedia.softseal.jpg
. La extensión de archivo.JPEG
solo se conoce comovideo
tipo, mientras que la extensión de archivo.jpeg
es un tipo de imagen (¿cuándo empezaron a importar las letras minúsculas y mayúsculas?). Al mismo tiempo,jpeg2000
es tipovideo
pero RFC 3745 considera que JPEG 2000 es unimage
tipo. La lista de la IANA parece adaptarse a los formatos jpeg específicos de la empresa (pvnd.sealedmedia.softseal.jpg
. Ej .).Debido a las confusiones anteriores, es difícil encontrar un documento canónico aceptado por la industria que asigne extensiones de nombre de archivo a tipos MIME, particularmente para el formato de archivo de imagen JPEG.
Pregunta relacionada "¿ Lista de TODOS los MimeTypes en el planeta, asignados a Extensiones de archivo? ".
fuente
Lo importante a tener en cuenta aquí es que el tipo mime no es el mismo que la extensión del archivo. A veces, sin embargo, tienen el mismo valor.
https://www.iana.org/assignments/media-types/media-types.xhtml incluye una lista de tipos Mime registrados, aunque no hay nada que te impida inventar el tuyo, siempre y cuando estés en el envío. y el extremo receptor. Aquí es donde Microsoft entra en escena.
Donde hay mucha confusión es el hecho de que los sistemas operativos tienen su propia forma de identificar los tipos de archivos mediante el uso del final del nombre del archivo, denominado extensión. En los sistemas operativos modernos, el nombre completo es una cadena larga, pero en los sistemas operativos más primitivos, se trata como un atributo separado.
El sistema operativo que causó la confusión es MSDOS, que había limitado la extensión a 3 caracteres. Esta limitación se hereda hasta el día de hoy en dispositivos, como las tarjetas SD, que aún almacenan datos de la misma manera.
Un efecto secundario de esta limitación es que algunas extensiones de archivo, como por ejemplo,
.gif
coinciden con su Tipo Mimeimage/gif
, mientras que otras están comprometidas. Esto incluyeimage/jpeg
cuya extensión se acorta a.jpg
. Incluso en Windows moderno, donde se levanta la limitación, Microsoft nunca deja pasar el pasado, por lo que la extensión del archivo sigue siendo la versión abreviada.Dado que eso:
La respuesta corta es:
image/jpg
, por lo que la respuesta es que no es lo mismo queimage/jpeg
Mientras estamos en eso ...
Las versiones heredadas de Internet Explorer se tomaron la libertad de cargar
jpeg
archivos con Mime Type ofimage/pjpeg
, lo que, por supuesto, solo significa más trabajo para todos los demás. También cargaronpng
archivos comoimage/x-png
.fuente
No tienes
image/jpg
pero puedes usar.jpg
Ejemplo
Fuente: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Unique_file_type_specifiers
fuente