/** * Fazer o upload das fotos e salvá-las no diretório do álbum * * É feito o upload das fotos e as salva no diretório de fotos do álbum. * Depois é criado o registro das fotos salvas na base de dados. */ public function upload() { if (isset($_FILES) && !empty($_FILES)) { # Informações do álbum $maf = new WebM\Album($this->foto_album); /* * Garantir que o diretório para upload das imagens esteja disponível. Já executo direto o método de criação * do diretório pois ele já faz a verificação se o diretório existe ou não, portanto não é necessário fazer * isso antes. */ if (!$maf->criarDiretorio()) { throw new \DL3Exception(sprintf(ERRO_FOTOALBUM_UPLOAD_DIRETORIO_NAO_LOCALIZADO, $maf->dir_upload), 1404); } // Fim if # Fazer o upload das fotos $oup = new \Upload("{$maf->dir_upload}/original", 'fotos'); $oup->setExtensoes($this->conf_extensoes_imagem); if (!$oup->salvar($maf->nome)) { throw new \DL3Exception(ERRO_FOTOALBUM_UPLOAD_SALVAR, 1500); } // Fim if # Selecionar as configurações do álbum $cws = new ConfiguracaoSite(); foreach ($oup->salvos as $f) { $this->id = null; $this->imagem = preg_replace('~^\\.?/~', '', $f); $this->publicar = true; # Criar as alternativas da imagem (foto e miniatura) $img_foto = new \Imagem($this->imagem); $img_mini = clone $img_foto; $img_fotow = $img_foto->getLargura(); $img_fotoh = $img_foto->getAltura(); if ($img_fotow > $img_fotoh) { $img_foto->redimensionar($cws->getAlbumFotow(), null); $img_mini->redimensionar($cws->getAlbumMiniw(), null); } else { $img_foto->redimensionar(null, $cws->getAlbumFotoh()); $img_mini->redimensionar(null, $cws->getAlbumMinih()); } // Fim if $this->foto = preg_replace('~\\/original\\/~', '/fotos/', $this->imagem); $this->mini = preg_replace('~\\/original\\/~', '/mini/', $this->imagem); $img_foto->salvar($this->foto); $img_mini->salvar($this->mini); /* * Utilizar a seguinte chamada "$this->salvar();" para salvar a foto não funciona da maneira desejada, * pois não passa pelo __call */ $this->__call('salvar'); } // Fim foreach } // Fim if }
public function salvarFoto() { # Salvar a foto do usuário if ($this->id != $_SESSION['usuario_id']) { throw new \DL3Exception(ERRO_USUARIO_SALVAR_FOTO_OUTRO_USUARIO, 1403); } // Fim if $oup = new \Upload('web/uploads/usuarios', 'perfil_foto'); $oup->setExtensoes($this->conf_extensoes_foto_perfil); $oup->conf_bloq_extensao = true; # Remover a foto atual if (!empty($this->perfil_foto)) { unlink($this->perfil_foto); } // Fim if if ($oup->salvar($this->info_nome)) { $this->perfil_foto = preg_replace('~^./~', '', $oup->salvos[0]); # Recortar a foto $tim = 200; $oim = new \Imagem($oup->salvos[0]); if ($oim->getAltura() > $oim->getLargura()) { $oim->redimensionar(null, $tim); } else { $oim->redimensionar($tim); } // Fim if $oim->salvar($oup->salvos[0]); $this->salvar(); } // Fim if }