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.
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.
Respuestas:
No, image/jpg
no es lo mismo image/jpeg
, solo image/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 .
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.
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
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 escriba image/jpeg
algunas listas no tienen diferentes extensiones de nombre de archivo ( .jpeg
, .jpg
, ...). Otras listas no mencionan image/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 nombre jpf
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 impar vnd.sealedmedia.softseal.jpg
. La extensión de archivo .JPEG
solo se conoce como video
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 tipo video
pero RFC 3745 considera que JPEG 2000 es un image
tipo. La lista de la IANA parece adaptarse a los formatos jpeg específicos de la empresa (p vnd.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? ".
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 Mime image/gif
, mientras que otras están comprometidas. Esto incluye image/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 of image/pjpeg
, lo que, por supuesto, solo significa más trabajo para todos los demás. También cargaron png
archivos como image/x-png
.
No tienes image/jpg
pero puedes usar.jpg
Ejemplo
<input type="file" accept=".jpg"/>
Fuente: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Unique_file_type_specifiers