Olá pessoal, boa tarde.
Tudo bem?
Tenho visto alguns tutoriais de upload simples, entretanto muitos além de não funcionarem direito; deixavam diversas pessoas comentando que não haviam conseguido ou não estavam entendendo.
Devido a isso, e também a uma simples necessidade do cotidiano de trabalho, criei esta classe para upload simples.
Está inteiramente comentada, facilitando assim o entendimento.
Para vê-la funcionando, basta copiar os códigos ao seu servidor e pronto, poderá fazer uploads facilmente!
Simples assim.
A classe atende a necessidade de upload simples de arquivos, neste momento decidí não inserir ainda listagem dos uploads realizados, limite de tamanho, checagem de extensões e demais funcionalidades, isto ficará para outros post.
Espero que sirva de grande ajuda, ganho de tempo, ou então no aprendizado de programação orientada a objetos.
Em casos de dúvidas, basta entrar em contato.
Abração!
Baixe os arquivos clicando aqui!
Classe Upload:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | <?php /* * Classe para upload de arquivos simples. * @autor Vinícius Lourenço * @since 13/08/2012 * @version 0.1 * https://blog.vilourenco.com.br */ class Upload { // Constante responsável por guardar a pasta de onde os arquivos estarão. const _FOLDER_DIR = "files/"; // Variável para guardar o array relacionado ao arquivo. public $_file; // Método construtor que recebe o array com os arquivos via POST // Verifica se já existe diretório, caso não; é criado. function __construct($curFile){ if(!file_exists(self::_FOLDER_DIR)){ mkdir(self::_FOLDER_DIR); } $this->_file = $curFile; } //Metódo para: //Verificar se existe arquivo; //Setar nome aleatório para evitar repetição e substiuição de arquivos; //Cria nome de arquivo concatenando DIRETÓRIO + NOME ALEATÓRIO + NOME DO ARQUIVO ENVIADO. //Verifica se o arquivo foi realizado o upload //Move o arquivo para o diretório escolhido, inserido na concatenação realizada. //Retorna true em casos de upload com sucesso e false com erro. function makeUpload(){ if(isset($this->_file)){ $randomName = rand(00,9999); $fileName = self::_FOLDER_DIR . "_" . $randomName . "_" . $this->_file["name"]; if(is_uploaded_file($this->_file["tmp_name"])){ if(move_uploaded_file($this->_file["tmp_name"], $fileName)){ echo "Upload realizado com sucesso!"; return true; }else{ echo "Erro, problemas no envio."; return false; } } } } } ?> |
Arquivo upload.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <html> <head> <title>Upload</title> </head> <body> <h4>Upload de arquivos.</h4> <?php include ("class.upload.php"); $myUpload = new Upload($_FILES["arquivo"]); $verificar = $myUpload->makeUpload(); ?> </body> </html> |
Arquivo Index.html:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Upload</title> </head> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td><input type="file" name="arquivo"></td> </tr> <tr> <td><input type="submit" value="Enviar"></td> </tr> </table> </form> </body> </html> |