php – Página: 2 – O Desenvolvedor
PHP – upload de arquivos com POST
Publicado em Publicado 13 de junho de 2012 por gserrano
Sempre que implemento algumas coisas no And After surgem mil idéias para posts aqui no O Desenvolvedor, desta vez vou abordar como lidar com upload de arquivos com PHP através do método POST.
Formulário para envio de arquivo
Para permitir o upload de arquivos com PHP o formulário deve ter o atributo enctype da seguinte forma:
form enctype="multipart/form-data" action="post.php" method="post"
E o campo de arquivo, onde o usuário vai selecionar o arquivo que será submetido através do método POST"
input name="userfile" type="file"
Na sua página PHP que receberá o post do formulário você terá acesso ao objeto $_FILES, que será um array com todos os arquivos submetidos no post.
Para acessar um arquivo específico, usamos o valor do atributo "name" que foi utilizado no inpute de arquivo no formulário, no exemplo anterior o nome é "userfile", portanto teremos $_FILES['userfile'].
Para visualizar no navegador todas as informações existentes no objeto faça o seguinte:
$_FILES['userfile']['error'] (veja a lista de código de erros do upload PHP)
Com estas informações você pode aplicar toda a lógica e tratamento necessário como verificação da extensão, tamanho, nomenclatura do arquivo, etc.
Perceba que o arquivo é salvo temporariamente no servidor, portanto neste ponto do código não existe nenhuma mágica, o upload já foi feito e você só precisa mover e renomear o arquivo para onde você deseja.
Depois de fazer os tratamentos necessários no PHP, você pode utilizar a função move_uploaded_file para mover o arquivo para o diretório onde ele deverá ficar (veja como criar pastas em PHP).
echo "Upload com sucesso";
echo "Erro no upload";
Espero ter ajudado no entendimento de como funciona o upload de arquivos com PHP, atualmente deixo o Code Igniter gerenciar quase tudo isso nas minhas aplicações. 🙂