Você está aqui: PHP ::: Dicas & Truques ::: Upload de Arquivos |
Quer fazer upload de arquivos em PHP? Comece entendendo o array $_FILESQuantidade de visualizações: 12359 vezes |
O array associativo $_FILES, que é uma variável superglobal, ou seja, pode ser acessada a partir de qualquer lugar de nossos scripts, foi introduzido na versão 4.1.0 do PHP, o que tornou $HTTP_POST_FILES obsoleto. O array $_FILES contém informações sobre o arquivo enviado ao servidor por meio de um formulário de upload. Entre estas informações podemos citar ("arquivo" é o nome do controle <input type="file"> no formulário): $_FILES['arquivo']['name'] - O nome original do arquivo na máquina do usuário. $_FILES['arquivo']['type'] - O mime type do arquivo, desde que o navegador forneça esta informação. Um exemplo seria "image/gif". Este mime type não é verificado pelo PHP e, portanto, não é uma boa idéia confiar nesta informação. $_FILES['arquivo']['size'] - O tamanho, em bytes, do arquivo enviado. $_FILES['arquivo']['tmp_name'] - O nome temporário atribuído ao arquivo pelo servidor. $_FILES['arquivo']['error'] - O código de erro associado a este upload de arquivo. Em geral checamos pela ocorrência do valor 0, igual à constante UPLOAD_ERR_OK, o que significa que o upload foi feito com sucesso. Antes de continuarmos, lembre-se de que os arquivos enviados ao servidor via upload são armazenados temporariamente no diretório temp do servidor, ou qualquer outro diretório indicado na diretiva upload_tmp_dir do php.ini. O arquivo fica neste local até o fim da execução do script atual. Para movê-lo para seu local definitivo, temos que usar a função move_uploaded_file(). Veja agora um exemplo de como obter as informações fornecidas no array $_FILES. Comece criando o seguinte formulário: <html> <head> <title>Upload de arquivos usando PHP</title> </head> <body> <form action="testes.php" method="post" enctype="multipart/form-data"> Arquivo: <input type="file" name="arquivo"><br> <input type="submit" name="submit" value="Enviar"> </form> </body> </html> Note que o valor da propriedade name do campo <input type="file"> é "arquivo". Tenha isso em mente enquanto continuamos. Veja agora o código para o arquivo PHP responsável por tratar o upload (testes.php): <? // vamos obter o nome original do arquivo na máquina do usuário echo "O nome do arquivo é: " . $_FILES['arquivo']['name']; echo "<br>O mime type do arquivo é: " . $_FILES['arquivo']['type']; echo "<br>O tamanho do arquivo é: " . $_FILES['arquivo']['size'] . " bytes"; echo "<br>O nome temporário do arquivo é: " . $_FILES['arquivo']['tmp_name']; // vamos verificar o código do erro if($_FILES['arquivo']['error'] == UPLOAD_ERR_OK) echo "<br>Upload feito com sucesso"; else echo "<br>Ocorreu um erro"; ?> Ao executar este exemplo, você terá um resultado parecido com: O nome do arquivo é: arquivo.txt O mime type do arquivo é: text/plain O tamanho do arquivo é: 84 bytes O nome temporário do arquivo é: /home/xxx/tmp/phpTgPCqL Upload feito com sucesso Em outras dicas nesta seção você aprenderá como usar a função move_uploaded_file() para salvar o arquivo enviado em seu local definitivo. |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de PHP |
Veja mais Dicas e truques de PHP |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |