Você está aqui: PHP ::: Dicas & Truques ::: Upload de Arquivos |
Restringindo os tipos de arquivos que podem ser enviados ao servidor em uma operação de upload em PHPQuantidade de visualizações: 9012 vezes |
Nesta dica mostrarei como você pode restringir os tipos de arquivos que podem ser enviados ao servidor em uma operação de upload em PHP. A técnica é muito simples. Sabemos que o array $_FILES contém várias informações sobre o arquivo enviado pelo usuário, entre elas o tipo (mime type) do arquivo. O primeiro passo é criar um array de tipos permitidos: $tipos_validos = array("image/jpeg", "image/pjpeg", "image/jpg", "image/gif", "image/png"); Note que, quando o upload é feito usando o Internet Explorer (IE), o mime type de uma imagem JPG é reconhecido como image/pjpeg. Teste seus formulários de uploads em vários navegadores antes de liberar ao público. Em seguida testamos se o tipo do arquivo enviado não está na lista de arquivos permitidos. Se o teste resultar verdadeiro, o upload do arquivo é barrado, ou seja, ele não é transferido para seu local definitivo por meio da função move_uploaded_file(). Veja um exemplo completo de um script PHP que processa o arquivo recebido de um formulário que contém um <input type="file"> com o nome de "arquivo": <? // diretório no qual o arquivo será gravado. este diretório // deverá ter permissão de escrita $diretorio = "/home/xxxx/xxxx/imagens/"; // lista de tipos aceitáveis. veja // http://www.arquivodecodigos.net/arquivo/ferramentas/mime_types.php // para uma lista bem completa de mime-types $tipos_validos = array("image/jpeg", "image/pjpeg", "image/jpg", "image/gif", "image/png"); // vamos verificar o código do erro if($_FILES['arquivo']['error'] == UPLOAD_ERR_OK){ // o arquivo foi transferido com sucesso. vamos verificar se // o tipo do arquivo é permitido if(!in_array($_FILES['arquivo']['type'], $tipos_validos)){ echo "O tipo do arquivo enviado (" . $_FILES['arquivo']['type'] . ") não é permitido"; } else{ move_uploaded_file($_FILES["arquivo"]["tmp_name"], $diretorio . $_FILES["arquivo"]["name"]); echo "Upload feito com sucesso"; } } else echo "Ocorreu um erro no upload"; ?> |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de PHP |
Veja mais Dicas e truques de PHP |
Dicas e truques de outras linguagens |
JavaScript - Como retornar o nome ou tipo de exceção de um erro em JavaScript usando a propriedade name do objeto Error |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |