Classe helper para upload de arquivos

Fala galera! Essa semana coloquei na minha conta do GitHub uma classe que implementei para auxílio no processo de upload de arquivos. É um helper bem interessante, pois é fácil de usar e dá pra definir várias regras como limite do tamanho do arquivo, filtro de extensões, sobrescrição de arquivos, etc.

Para fazer o download da classe, você pode acessar o http://www.github.com/rafaelwendel/UploadHelper ou através da sua linha de comando.

$ git clone https://github.com/rafaelwendel/UploadHelper.git

Para utilizar a classe é fácil, basta incluir o caminho e criar uma instância

1
2
3
<?php
   include ('UploadHelper.php');
   $upload = new Upload_Helper();

Para fazer um upload, defina um arquivo.

3
4
5
//Depois de submeter um formulário
$file = $_FILES['file'];
$upload->set_file($file);

Defina o diretório para onde o arquivo deverá ser enviado

5
$upload->;set_uploads_folder('path/to/uploads/folder');

Defina as extensões válidas

6
7
$allowed = array('jpg', 'png', 'gif', 'bmp'); //somente imagens
$upload->set_allowed_exts($allowed);

Deseja renomear o arquivo? (Por padrão, ele mantém o mesmo nome)

7
$upload->set_file_name('new_name'); //O novo nome do arquivo

Deseja sobrescrever o arquivo como mesmo nome, caso exista? (True é o padrão)

8
$upload->set_overwrite(false); // Não sobrescrever arquivos com o mesmo nome

Qual o limite de tamanho dos arquivos? (2MB é o pdrão)

9
$upload->set_max_size(5); //Defina o tamanho dos arquivos em MegaBytes(MB)

Depois de tudo definido, faça o upload.

10
11
12
13
14
15
if($upload->upload_file()){
    echo 'Arquivo enviado com sucesso. Caminho: ' . $upload->get_file_path(); 
}
else{
    echo $upload->get_error();
}

Por padrão, as mensagens de erro estão em inglês(en), mas se quiser alterar para português é fácil.

5
$upload->set_language('pt'); // Define o idioma das mensagens de erro

E pronto! Muito fácil de usar e espero que te ajude.

Abs!

É formado em Sistemas de Informação, pós-graduado em Sistemas de Banco de Dados e mestre em Educação com foco em Tecnologias Sociocomunitárias. Trabalha como professor de ensino técnico e tecnológico no Instituto Federal de Educação, Ciência e Tecnologia de São Paulo ministrando disciplinas nas áreas de programação, banco de dados, desenvolvimento de projetos e engenharia de software.

Posts relacionados

Comentários

  1. ola, sei que não é assunto dessa aula que vou falar mais como gostei de algumas aula sua, decidi pergutar, bom eu note que algum cms como o wordpress e outro um instalaração de bancos de dados na hora que começa a usar ele. Pois então estou quero fazer aquele mesmo tipo no meu sisteminha aki so que não sei por onde começar. Tenho todos as tabelas prontas só que eu queria que meu sistema instalasse e não eu ter que ir no mysql o colocar la. como faço isto. Obrigado se puder me ajudar.

  2. Boa classe, mas deu erro

    Severity: Warning
    Message: Illegal string offset ‘name’
    Filename: controllers/UploadHelper.php

    Severity: Notice
    Message: Uninitialized string offset: 0
    Filename: controllers/UploadHelper.php

  3. Olá,
    gostei muito do seu post, parabéns.
    Quero saber se consigo trabalhar com outras extensões de arquivos como “docx”, “doc”, pdf.
    Pergunto isso porque estou a desenvolver um pequeno contato para anexar CV.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *