[PHP] FAZER UPLOAD DE ARQUIVOS

última modificação em 3 de Abril de 2009 às 19:16 por pintuda
Publicado por pintuda
O PHP possibilita o gerenciamento de arquivos enviados (upload) graças ao formulário HTML.
  • Formulário de envio de arquivos
  • Configurção do PHP para fazer upload
  • Recuperação do arquivo com PHP

Formulário de envio de arquivos


A primeira coisa a fazer é criar um formulário HTML que, ao abrir uma janela, permitará a escolha do arquivo a enviar:
<FORM method="POST" action="[seu arquivo PHP para fazer upload.php]" ENCTYPE="multipart/form-data">
<INPUT type=hidden name=MAX_FILE_SIZE VALUE=2048>
<INPUT type=file name="nome do arquivo">
<INPUT type=submit value="enviar">
</FORM>

É fundamental não esquecer a ENCTYPE="multipart/form-data" ! Caso contrário, o formulário não terá nenhum efeito.

Além disso, o campo MAX_FILE_SIZE indica o tamanho máximo do arquivo a ser enviado pelo navegador mas, isto não é o bastante para garantir que os arquivos enviados não ultrapassarão um determinado tamanho na medida em que nem todos os navegadores levam em conta este tamanho. O valor do tamanho máximo do arquivo enviado é ajustável no disco rígido dentro a pasta de configuração “php.ini”.

Configuração do PHP para fazer upload


O arquivo de configuração « php.ini » contém diretivas que ajustam e que autorizam ou não o envio de arquivos através de um formulário:

file_uploads= On/Off autoriza ou não o envio de arquivos.
upload_tmp_dir = diretório define temporáriamente o diretório, possibilitando a recepção do arquivo enviado.
upload_max_filesize = 2M define o tamanho máximo permitido do arquivo. Se este limite for ultrapassado, o servidor enviará um alerta de erro.
post_max_size indica o tamanho máximo de dados enviados por formulário. Esta diretiva tem primazia sobre o upload_max_filesize ; assim, certifique-se que você tem post_max_size superior a upload_max_filesize

Se você não tiver aceso à configuração (no caso de um site hospedadoo em um servidor do provedor de acesso ou de uma hospedagem compartilhada), pode-se verificar a configuração graças à função phpinfo() :
<?
phpinfo();
?>

Recuperação do arquivo com PHP


O arquivo e suas informações podem ser encontrados através da variável superglobal $_FILES[].
Para afixar o seu conteúdo, utilize o seguinte script:
<pre><? print_r($_FILES); ?></pre>

A saída deste código será da seguinte forma :
Array
(
[nom_du_fichier] => Array
(
[name] => MaBelleImage.jpg
[type] => image/jpg
[tmp_name] => chemin_complet_du_fichier_uploadé
[error] => 0
[size] => 1000
)
)

No caso acima, trata-se de uma imagem JPEG pesando 1 Mo.


Os campos $_FILES[name], $_FILES[type], $_FILES|error], $_FILES[size] permitem testar o tipo de arquivo, seu tamanho sa taille, seu nome e verificar se houve erros.

Assim, você pode corrigir os erros da seguinte maneira:
<?
if ($_FILES['nome do arquivo']['error']) {
switch ($_FILES['nome_do_arquivo']['error']){
caso 1: // UPLOAD_ERR_INI_SIZE
echo"O arquivo ultrapassa o limite autorizado pelo servidor(arquivo php.ini) !";
break;
caso 2: // UPLOAD_ERR_FORM_SIZE
echo " O arquivo ultrapassa o limite autorizado no formulário HTML !");
break;
caso 3: // UPLOAD_ERR_PARTIAL
echo "O envio do arquivo foi interrompido durante a transferência!";
break;
caso 4: // UPLOAD_ERR_NO_FILE
echo "O arquivo que você enviou tem um tamanho zero !");
break;
}
}
else {
// $_FILES['nome_do arquivo']['error'] vale 0 ou seja UPLOAD_ERR_OK
// o que significa que não houve erro
}
?>




Com o move_uploaded_files() é possível transferir uma imagem do diretório temporário a um diretório de destino :
<?

if ((isset($_FILES['nom_du_fichier']['arquivo'])&&($_FILES['nome_do arquivo']['error'] == UPLOAD_ERR_OK)) {
$caminho_destino = '/var/www/arquivos/';
move_uploaded_file($_FILES['nome_do_arquivo']['tmp_name'], $caminho_destino.$_FILES['nome_do_arquivo']['name']);
}
?>
Melhores respostas por « FAZER UPLOAD DE ARQUIVOS » em :
Arquivo Formato DOC Ver Formato DOC Um arquivo DOC é um arquivo de tratamente de texto do pacote burótico l Microsoft Office. Como ler um arquivo DOC ? Ele pode ser aberto com Il Word Viewer ou com o complemento gratuito e livre Openoffice OpenOffice.org....
Criar um arquivo PDF VerUm arquivo PDF (abreviação de Portátil Documento Formato) é um documento podendo conter textos, desenhos, imagens em preto e branco, em cores ou em 3D, fotos e eventualmente funções de tratamento. O formato PDF é um formato aberto, evolutivo e multi...
Como anexar arquivo no email[Hotmail] VerAnexar arquivos a mensagens de email Se você precisa anexar arquivos a mensagens de email, siga as seguintes instruções: Clique no ícone de email e, em seguida, em Novo. Clique em Anexar e em Arquivo. Localize e selecione o arquivo que...
Como ler um arquivo .docx ? VerProblema Em um e-mail, você pode receber uma peça anexa, cujo arquivo é de formato DOCX (format OpenDocument proprietário da Microsoft) e você não sabe como abri-la. Você recebe uma mensagem, uma recusa : nenhum programa é atribuído a este...
Download MP3-Check VerEste programa vai fazer uma verificação da qualidade de seus arquivos MP3. Ele é simples e permite além de sua função principal informar se suas musicas tem ou não tags ID3v1 ou ID3v2, regular o som ideal para escutar tal ou tal música. [Image:...
O sistema de arquivos VerO que é um sistema de arquivos? Os discos rígidos, por muito pequenos que sejam, contêm milhões de bits, é necessário por isso organizar os dados a fim de poder localizar as informações, é o objetivo do sistema de arquivos. Um disco...
O que é um arquivo? VerO que é um arquivo? Um arquivo é uma sequência de informações binárias, ou seja, uma sequência de 0 e 1. Este arquivo pode ser armazenado para guardar um vestígio destas informações. Um arquivo texto é um arquivo composto de ...
Partição - Particionamento de um disco duro VerO que é uma partição? O Particionamento de um disco duro faz-se após a formatação física deste e antes da formatação lógica. Consiste em criar zonas no disco cujos dados não serão misturados. Isto serve, por exemplo, para instalar...