Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marsolim

como pego mimetype real de uma imagem?

Recommended Posts

pessoal fiz uma pesquisa enorme mas todas as informações não resultam no que preciso. eu preciso conseguir o mimetype real de arquivos para poder permitir ou não o upload deles. tentei algo como get_mimetype e outras variantes. tentei o fileinfo e tambem tentei o $FILES["arquivo"]["type"] mas eles não entregam o mimetype correto do arquivo. se eu pegar um arquivo txt e mudar a extensão dele para jpg essas funções dizem que é uma image/jpeg mesmo sendo um txt. eu precisava de alguma coisa que me dissesse que é um plain/text mesmo se o usuário mudar a extensão dela para jpg.

 

alguma dica? muito agradeço.

 

 

nenhuma ideia? será que isso não tem jeito mesmo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal agradeço pelas respostas. não sei porque essas funções não retornam o mimetype certo do arquivo. eles retornam de acordo a extensão do arquivo ou seja se eu pegar uma imagem nome.jpg e renomear ela para nome.txt essas funções dizem que é um text/plain ao invés de dizer que é um image/jpg. desse jeito a validação fica falha pois se um usuario renomear um arquivo php malicioso para jpg o sistema vai deixar fazer upload.

Compartilhar este post


Link para o post
Compartilhar em outros sites

depois de alguns dias hoje consegui resolver adaptando a dica da página php.net assim

$finfo = new finfo(FILEINFO_MIME, "");
echo $finfo->file("imagens/imagem.jpg");

lá na página passam o caminho na linha do $fileinfo mas aqui deu erro nessa linha apesar da linha do echo exibir tudo certo mas do jeito que adaptei está funcionando sem dar mensagem de erro. testei com alguns tipos de arquivo como txt, jpg e zip e agora funciona bem, mesmo se eu trocar a extensão no arquivo o script retorna o tipo correto dele.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.