Múltiplos Uploads com PHP, Mysql e Ajax - #11 ClassUpload
19/11/2019Neste 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!
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.
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.