Ir para conteúdo

POWERED BY:

Arquivado

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

hargon

Limitar tipos de arquivos

Recommended Posts

Eu criei um sistema de anexar arquivo e enviar por e-mail.

 

Preciso que este sistema envie somente arquivos com as seguintes extensões:

*.cdr, *.dwg, *.eps, *.jpe, *.jpg, *.pdf, *.plt, *.prn, *.psd, *.tif, *.wmf, *.wmv, *.zip

 

Criei este IF para fazer isso:

PHP
  • if(!eregi("^application\/(msword|pdf|octet-stream|plt|dwg|postscript|wmv|x-zip-compressed|psd)$", $arquivo_type) && !eregi("^image\/(tiff|jpg|x-wmf|pjpeg)$", $arquivo_type) && !eregi("^video\/(x-ms-wmv)$", $arquivo_type) && !eregi("^text\/(plain)$", $arquivo_type)) //aqui eu limitei fazer upload somente de alguns arquivos
  • {
  • echo ("Arquivo em formato inválido! ");
  • }

O problema é que os arquivos octet-stream possibilitam o upload de outros tipos de arquivos, como por exemplo arquivos *.exe.

 

Como posso restringir somente as extensões abaixo?

*.cdr, *.dwg, *.eps, *.jpe, *.jpg, *.pdf, *.plt, *.prn, *.psd, *.tif, *.wmf, *.wmv, *.zip

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, Faça uma atribuição a uma variável e carregue subsequente a um array().Exemplo: $limitar_extensoes = "sim"; $extensoes_validas = array(".pdf", ".doc", ".xls", ".html"); if ($limitar_extensoes == "sim" && !in_array($ext, $extensoes_validas)) die ("Extensão de arquivo não permitida");Tenta adaptar no seu source e cuidado com as chaves antacendentes e subsequentes.Abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quais são as extensões do mime-type "application/octet-stream" que você quer permitir? Eu não sei se existe como você verificar se o cara não vai tentar enviar um .exe ... você poderia pegar pela extensão, mas isso é fácil de driblar a partir do momento que você permitiu pelo mime-type.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ve se funciona isso, nao é la estas coisas mais pode funfar*.cdr, *.dwg, *.eps, *.jpe, *.jpg, *.pdf, *.plt, *.prn, *.psd, *.tif, *.wmf, *.wmv, *.zip if (eregi("\.cdr$", $file) || eregi("\.dwg$", $file) eregi("\.eps$", $file) ....){faz upload}else{ tipo de arquivo invalido}Agorase você quer impedir somente exe faz assimif (eregi("\.exe$", $file) ){o macaco manda outro arquivo que esse nao quero. hehe}pode funcionar .Se nao funcionar use a funfar $_file['type']['arquivo'] (não tenho certeza que são estes dados , mas a função $file funciona)

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.