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.
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.
Respostas:
Não, image/jpg
não é o mesmo que image/jpeg
, apenas image/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 .
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.
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
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 digite image/jpeg
algumas listas que têm diferentes extensões de nome de arquivo ( .jpeg
, .jpg
...). Outras listas não mencionam image/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 nome jpf
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 ímpar vnd.sealedmedia.softseal.jpg
. A extensão do arquivo .JPEG
é conhecida apenas como um video
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
é tipo video
ainda RFC 3745 considera JPEG 2000 um image
tipo! A lista da IANA parece atender aos formatos jpeg específicos da empresa (por exemplo vnd.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? ".
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 Mime image/gif
, e outras são comprometidas. Isso inclui image/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 de image/pjpeg
, o que, é claro, significa apenas mais trabalho para todos os outros. Eles também enviaram png
arquivos como image/x-png
.
Não tenho, image/jpg
mas você pode usar.jpg
Exemplo
<input type="file" accept=".jpg"/>
Fonte: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#Unique_file_type_specifiers