NOTÍCIA

Upload de arquivos

Páginas PHP↳PHP44 conteúdosPadronizando seu código com PHP CS FixerDev (Back & Front) · mai 2019Docker de imagem. Para rodar projetos PHP em menos de 30 segundosDev (Back & Front) · jan 2026PHP 7.3: conheça as novidades desta versãoDev (Back & Front) · abr 2019Ver tudo em Dev (Back & Front) → podem receber uploads
de arquivos texto ou binários, vindos de browsers
compatíveis com a especificação
RFC-1867 (o que inclui o Netscape 3+ e Internet Explorer
3+). Associando esses recursos com as possibilidades
de autenticação de usuários e as
funções de manipulação de
arquivos, podemos construir aplicações
complexas envolvendo arquivos.

O formulário necessário
para efetuar um upload deve seguir o seguinte modelo:

<FORM ENCTYPE="multipart/form-data" ACTION="URL" METHOD=POST>
<INPUT TYPE="hidden" name="MAX_FILE_SIZE" value="1000">
Arquivo: <INPUT NAME="arquivo" TYPE="file" SIZE=50>
<INPUT TYPE="submit" VALUE="Enviar">
</FORM>

O que nos dá a seguinte interface:



Arquivo: 


A URL de ação do formulário deve
apontar para um script PHP. O campo escondido MAX_FILE_SIZE
deve ser declarado antes do campo de entrada (INPUT);
seu valor indica o tamanho máximo aceito (em bytes)
para o arquivo a carregar.

O
script PHP que trata o formulário de upload acima
é o seguinte:

<HTML><BODY>
<H3>Dados do arquivo carregado:</H3>
<table border=1>
<tr bgcolor="#bbbbbb"><td>Variável</td><td>Valor</td></tr>
<tr><td>$arquivo</td><td><?echo $arquivo?></td></tr>
<tr><td>$arquivo_name</td><td><?echo $arquivo_name?></td></tr>
<tr><td>$arquivo_size</td><td><?echo $arquivo_size?></td></tr>
<tr><td>$arquivo_type</td><td><?echo $arquivo_type?></td></tr>
</table>
</BODY></HTML>

No script PHP, as seguintes variáveis
estarão disponíveis após o upload
do arquivo:

  • $arquivo:
    o nome temporário escolhido para o arquivo
    dentro do servidor.
  • $arquivo_name:
    o nome original do arquivo na máquina cliente.
  • $arquivo_size:
    o tamanho do arquivo, em bytes.
  • $arquivo_type:
    o tipo MIME do arquivo, conforme informado pelo browser.
    Por exemplo, uma imagem GIF seria o tipo “image/gif“.

Observe que o o nome das variáveis
acima depende do nome da variável indicada no formulário.
Caso tivéssemos usado o nome  “abacaxi”
para o arquivo no formulário, teríamos as
variáveis $abacaxi,
$abacaxi_name, $abacaxi_size
e $abacaxi_type no script
PHP.

Por default, os arquivos
carregados são armazenados em um diretório
temporário no servidor (como /tmp
ou /var/tmp). Essa localização
pode ser alterada modificando o valor da variável
de ambiente TMPDIR no ambiente onde roda o
PHP.

O script PHP deve tratar o arquivo, movendo-o
para outro local, mudando seu nome ou apagando-o após
processá-lo. Se não o fizer, o arquivo
será removido imediatamente após
a execução do script.

Observação: o parâmetro
MAX_FILE_SIZE não pode especificar valores acima
do default definido no arquivo php3.ini
(upload_max_filesize) ou
no arquivo httpd.conf do
servidor Apache (php3_upload_max_filesize).
O default dessas duas configurações é
2 Megabytes.

Matérias especiais e reportagens conduzidas internamente pela Redação iMasters. Acompanhe no Twitter @imasters e no Instagram/Threads @portalimasters

Mais de Redação iMasters
Ver perfil →