Pergunta bastante simples, mas não consigo encontrá-la em nenhum lugar on-line. Estou tentando criar um programa que, dependendo do tipo de arquivo, me dê a extensão.
file
mime-types
Joe Scotto
fonte
fonte
Respostas:
Não,
image/jpg
não é o mesmo queimage/jpeg
, apenasimage/jpeg
é reconhecido como o tipo de mímica real para arquivos JPEG.Veja https://tools.ietf.org/html/rfc3745 , https://www.w3.org/Graphics/JPEG/ .
Exibir o tipo de conteúdo incorreto
image/jpg
no IE pode causar problemas, consulte http://www.bennadel.com/blog/2609-internet-explorer-aborts-images-with-the-wrong-mime-type.htm .fonte
image/jpeg jpeg jpg;image/jpg jpeg jpg;
Para aqueles que podem ajudar, eu uso essa lista como uma referência para definir meu tipo de conteúdo quando tiver que lidar com imagens no meu aplicativo.
Diz que a extensão jpg pode ser declarada com
Content-type : image/jpeg
Não há nenhum
image/jpg
atributo para o tipo de conteúdo.fonte
tl; dr as "normas" são uma bagunça miscelânea; depende de quem você pergunta!
No geral, parece não haver tipo MIME
image/jpg
. No entanto, na prática, quase todo o software lida com arquivos de imagem "*.jpg
" muito bem.Este tópico específico é confuso porque a associação variável da extensão de nome de arquivo associada a um tipo MIME depende de qual organização criou a tabela de extensões de nome de arquivo para tipos MIME. Em outras palavras, a extensão do nome do arquivo
.jpg
pode ser muitas coisas diferentes.Por exemplo, aqui estão três "listas completas" e uma RFC que varia em torno de várias extensões de nome de arquivo no formato de imagem JPEG e os tipos MIME associados.
.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 lista " nomes" , não " extensões de nome de arquivo ")
jpg
Não mencionadojpeg
→ consulte RFC 2045 (sem menção), consulte 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
extensão de arquivo não mencionada.jpeg
extensão de arquivo não mencionada.jp2
,.jpg2
→image/jp2
( JPEG 2000 ) 9.jpf
,.jpx
→image/jpx
( dados de imagem codificados em JPEG 2000 ISO-JPEG2000-2 ) 10.mj2
,.mjp2
→video/mj2
( Motion JPEG 2000 ) 11.jpm
,.jpgm
→image/jpm
( perfis e extensões JPEG 2000 ) 12Essas "listas completas" e o RFC não têm o tipo MIME
image/jpg
! Mas para MIME digiteimage/jpeg
algumas listas que têm diferentes extensões de nome de arquivo (.jpeg
,.jpg
...). Outras listas não mencionamimage/jpeg
.Além disso, existem diferentes tipos de formatos de imagem JPEG s (por exemplo , formato Progressive JPEG Image , JPEG 2000 , etc) e "Extensões JPEG" que podem ou não se sobrepor na extensão do nome do arquivo e no tipo MIME declarado.
Outra coisa confusa é que a RFC 3745 parece não corresponder aos tipos de mídia da IANA, mas a RFC 3745 deve informar o documento sobre os tipos de mídia da IANA . Por exemplo, na RFC 3745
.jpf
é a extensão de arquivo preferida para,image/jpx
mas nos tipos de mídia da IANA, o nomejpf
não está presente (e esse documento da IANA faz referência à RFC 3745 !).Outra coisa confusa é que os tipos de mídia da IANA listam "nomes", mas não listam "extensões de nome de arquivo". Isso é proposital, mas confunde o esforço de mapear extensões de nome de arquivo para tipos MIME.
Outra coisa confusa: é " mime " ou " MIME " ou " tipo MIME " ou " tipo mime " ou " mime / tipo " ou " tipo de mídia "⁉ 😧
O documento aparentemente oficial da IANA é surpreendentemente inadequado. Nenhum tipo MIME está registrado para a extensão do arquivo, no
.jpg
entanto, existe o ímparvnd.sealedmedia.softseal.jpg
. A extensão do arquivo.JPEG
é conhecida apenas como umvideo
tipo, enquanto a extensão do arquivo.jpeg
é um tipo de imagem (quando as letras maiúsculas e minúsculas começaram a ser importantes !?). Ao mesmo tempo,jpeg2000
é tipovideo
ainda RFC 3745 considera JPEG 2000 umimage
tipo! A lista da IANA parece atender aos formatos jpeg específicos da empresa (por exemplovnd.sealedmedia.softseal.jpg
).Devido às confusões anteriores, é difícil encontrar um documento canônico aceito pelo setor que mapeie extensões de nome de arquivo para tipos MIME, principalmente para o formato de arquivo de imagem JPEG.
Pergunta relacionada " Lista de TODOS os MimeTypes do planeta, mapeados para extensões de arquivo? ".
fonte
O importante a ser observado aqui é que o tipo mime não é o mesmo que a extensão do arquivo. Às vezes, no entanto, eles têm o mesmo valor.
https://www.iana.org/assignments/media-types/media-types.xhtml inclui uma lista de tipos MIME registrados, embora não haja nada impedindo você de criar o seu próprio, desde que você esteja no envio e o fim do recebimento. Aqui é onde a Microsoft entra em cena.
Onde há muita confusão, é o fato de os sistemas operacionais terem sua própria maneira de identificar os tipos de arquivo usando o final do nome do arquivo, conhecido como extensão. Nos sistemas operacionais modernos, o nome inteiro é uma cadeia longa, mas em sistemas operacionais mais primitivos, é tratado como um atributo separado.
O SO que causou a confusão é o MSDOS, que limitou a extensão a 3 caracteres. Essa limitação é herdada até hoje em dispositivos, como cartões SD, que ainda armazenam dados da mesma maneira.
Um efeito colateral dessa limitação é que algumas extensões de arquivo, como
.gif
o tipo Mimeimage/gif
, e outras são comprometidas. Isso incluiimage/jpeg
cuja extensão está reduzida.jpg
. Mesmo no Windows moderno, onde a limitação é levantada, a Microsoft nunca deixa de lado o passado e, portanto, a extensão do arquivo ainda é a versão reduzida.Dado que isso:
A resposta curta é:
image/jpg
, então a resposta é que não é o mesmo queimage/jpeg
Enquanto estamos nisso ...
As versões herdadas do Internet Explorer tiveram a liberdade de fazer upload de
jpeg
arquivos com o Mime Type deimage/pjpeg
, o que, é claro, significa apenas mais trabalho para todos os outros. Eles também enviarampng
arquivos comoimage/x-png
.fonte
Não tenho,
image/jpg
mas você pode usar.jpg
Exemplo
Fonte: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Unique_file_type_specifiers
fonte