hargon 64 Report post Posted July 18, 2005 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 Share this post Link to post Share on other sites
Fabyo 66 Report post Posted July 19, 2005 use expressores regulares pra isso fica mais facil Share this post Link to post Share on other sites
rsddaros 0 Report post Posted July 19, 2005 use expressores regulares pra isso fica mais facil <{POST_SNAPBACK}> da exemplo ae???T+ Share this post Link to post Share on other sites
Wagner Bianchi 0 Report post Posted July 19, 2005 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! Share this post Link to post Share on other sites
Illidan 0 Report post Posted July 19, 2005 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. Share this post Link to post Share on other sites
ronanlumb 0 Report post Posted July 19, 2005 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) Share this post Link to post Share on other sites