Ir para conteúdo

POWERED BY:

Arquivado

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

nathanfeitoza

Como fazer com que o php só faça upload das extensões permitidas

Recommended Posts

Olá, galera.

 

Bom, eu criei esse scriptzinho de upload de imagens que guarda a urel da imagem no BD, mas ele faz o upload de todos os arquivos, e eu queria saber como fazer para que ele só aceite as extensões que eu permitir, ex:. jpg, png, gif. Pois se eu não fizer isso, posso estar sujeitos à ataques hackers, então, por favor, peço que vocês me digam como posso fazer isso. Abaixo está o script que faz o upload da imagem:

 

<?php
include('views/config.php');
$uploaddir = 'banners/'; //diretório onde será gravado a imagem
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name'])) {
$uploadfile = $uploaddir . $_FILES['userfile']['name'];
$sqlinsert = "INSERT INTO img_upload (cod_imagem) VALUES ('http://localhost/test/noti_admin/$uploadfile')";
$inserenome = mysql_query( $sqlinsert);
?>
<img src="http://localhost/test/noti_admin/<?php echo "$uploadfile"; ?>"/><b>Teste</b>
<?php
} else {
echo"não foi possível concluir o upload da imagem.";
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mais ou menos assim:

$uploaddir = 'banners/';
$arquivo = $_FILES['userfile'];
$nome_arquivo = $arquivo["name"];
$extensao = end(explode(".", $nome_arquivo));

if($extensao != 'jpg' || $extensao != 'png' || $extensao != 'gif'){

    echo "Extensão não permitida!";

} else {

include('views/config.php');
if (move_uploaded_file($arquivo['tmp_name'], $uploaddir . $nome_arquivo)) {
$uploadfile = $uploaddir . $nome_arquivo;
$sqlinsert = "INSERT INTO img_upload (cod_imagem) VALUES ('http://localhost/tes...$uploadfile')";
$inserenome = mysql_query( $sqlinsert);
} else {
echo"não foi possível concluir o upload da imagem.";
}
}

Não testei apenas fiz aqui de grosso modo mesmo...

Qualquer dúvida pode postar aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você verificar só a extensão, qualquer pessoa pode enviar um vírus (.exe), desde que troque a extensão para ".jpg" por exemplo.

 

O correto é validar por mime-type. Use o índice "type" do array $_FILES

 

Veja: http://php.net/manual/pt_BR/features.file-upload.post-method.php

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.