Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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')";](http://localhost/test/noti_admin/%24uploadfile%27))
$inserenome = mysql_query( $sqlinsert);
?>
<img src="[http://localhost/test/noti_admin/](http://localhost/test/noti_admin/)<?php echo "$uploadfile"; ?>"/><b>Teste</b>
<?php
} else {
echo"não foi possível concluir o upload da imagem.";
}
?>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
Mais ou menos assim:
} else {
include('views/config.php');
if (move_uploaded_file($arquivo['tmp_name'], $uploaddir . $nome_arquivo)) {
} else {
Não testei apenas fiz aqui de grosso modo mesmo...Qualquer dúvida pode postar aqui.