Banco de dúvidas

Fazendo upload de arquivo pelo PHP

Passo 1: crie um formulário em seu site onde deseja que fique o campo de envio de arquivo:

<form action="upload.php" method="POST" enctype="multipart/form-data">
Enviar o arquivo: <input type="file" name="arquivo" />
<input type="submit" value="Enviar" />
</form>

Se o formulário já existir em seu site, certifique-se de que o método é tipo "POST" e o "enctype" é "multipart/form-data". Aí insira o campo de upload (tipo "file").

Passo 2: crie o script PHP que vai receber o arquivo enviado pelo formulário. No caso, o nome é "upload.php". Segue exemplo:

<?php
// por segurança, que seja uma pasta não acessível pela web
$pasta_upload = '../meus_uploads/';
$arquivo = $pasta_upload . $_FILES['arquivo']['name'];

if (move_uploaded_file($_FILES['arquivo']['tmp_name'], $arquivo))
{
    echo "Arquivo recebido!";
    // faça aqui verificações no arquivo para saber se não é malicioso
}
else
    echo "Arquivo não recebido.";
?>

Importante: não se deve confiar em arquivos enviados por usuários, então coloque o arquivo temporariamente em uma pasta fora do public_html se você quiser verificar e liberar o arquivo "manualmente". Se for um processo automático, faça todas as verificações necessárias (como formato do arquivo, se for imagem ou outro específico) antes de liberar para acesso via seu site. Também não coloque o formulário de upload em local acessível ao público em geral. Prefira uma seção do seu site onde o acesso é restrito a usuários autorizados.

Caso ocorra erro de limite de tamanho do arquivo, aumente o limite nas opções do PHP "post_max_size" e "upload_max_filesize". Segue exemplo de como alterar essas opções pelo seu painel de controle.

Este artigo foi útil para você?