Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Múltiplos Uploads com PHP, Mysql e Ajax - #11 ClassUpload

19/11/2019

Neste tutorial setaremos algumas configurações para retirar os espaços vazios dos nomes dos arquivos, bem como criaremos um nome randômico para que não haja sobrescrita de arquivos.

ClassUpload

Para rodar a nossa ClassUpload vamos instalar uma classe externa pra trabalhar com nosso slug. Para tanto vamos abrir o cmd no Windows, abrir dentro do terminal o diretório que se encontra o nosso composer e rodar o comando abaixo:

composer require cocur/slugify

Vamos criar primeiramente nossa ClassUpload:

<?php
namespace Classes;

use Cocur\Slugify\Slugify;
use Models\ModelCrud;

class ClassUpload extends ModelCrud{

    private $file;
    private $slug;
    private $count;
    private $ads;
    private $dir;
    private $rand;

    #Construct
    public function __construct()
    {
        $this->slug=new Slugify();
        $this->slug->addRule('.','yyy');
        $this->ads=new ClassAds();
        $this->rand=rand(0,100000);
    }

    #Getters and setters
    public function getFile(){return $this->file;}
    public function setFile($file){$this->file = $file;}
    public function getCount(){return $this->count;}
    public function setCount($count){$this->count = $count;}
    public function getDir(){return $this->dir;}
    public function setDir($dir){$this->dir = $dir;}

    #Caminho absoluto do arquivo
    public function getAbsFile()
    {
        return $this->getDir().$this->rand.'_'.str_replace('yyy','.',$this->slug->slugify($this->getFile()['name'][$this->getCount()]));
    }

    #Move files
    public function moveFiles()
    {
        move_uploaded_file($this->getFile()['tmp_name'][$this->getCount()], $this->getAbsFile());
        $this->insertDB("files", "?,?,?", array(0, $this->ads->getNextId(), $this->getAbsFile()));
    }
}

No arquivo variables.php vamos criar o objeto pra instanciar a ClassUpload:

$objUpload=new \Classes\ClassUpload();

No controller vamos setar as informações e chamar os métodos:

<?php
for($i=0; $i<$count; $i++){
    $objUpload->setFile($files);
    $objUpload->setDir('img/files/');
    $objUpload->setCount($i);
    $objUpload->moveFiles();
}

Sucesso nos códigos e na vida!

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Múltiplos Uploads com PHP, Mysql e Ajax - #10 Iniciando com Ajax
Na aula de hoje iniciaremos com o ajax propriamente dito, fazendo o upload dos arquivos.
Saiba mais!
Múltiplos Uploads com PHP, Mysql e Ajax - #12 Validação de Dados
Na aula de hoje faremos as validações nos tipos de arquivos enviados pelo usuário, verificando se eles atendem aos requisitos do sistema.
Saiba mais!
MultiUploads
No curso de múltiplos uploads utilizando php, mysql e ajax trabalharemos com o envio de diferentes arquivos, barra de progresso e sem utilização de plugins.
Saiba mais!