Ir para o conteúdo

- - - - -

Arquivo


Criado por Rodolfo Ribeiro Barreto, Jan 09 2012 20:54

Não há respostas para este tópico
  • Por favor, faça o login para responder

#1 Rodolfo Ribeiro Barreto

Rodolfo Ribeiro Barreto
  • Rodolfo Ribeiro Barreto
  • Colaborador
  • 5 Revisões

Revisou 09 janeiro 2012 - 20:54

<?php
interface IArquivo{
function get_editar_xy($largura,$altura,$type);
function get_salvar_arquivo();
}

class Arquivo implements IArquivo{
protected $caminho_name;
protected $caminho_tmp;
protected $diretorio;
private $rand;

public function __construct($caminho_name,$caminho_tmp,$diretorio,$rand = true){
$this->caminho_name = $caminho_name;
$this->caminho_tmp = $caminho_tmp;
$this->diretorio = $diretorio;
$this->rand = $rand;

# verifica se o rand está habilitado
if($this->rand != null)
# define um rand aleatorio para diferenciar os arquivos
$this->rand = rand(0,999);
}

public function get_editar_xy($largura,$altura,$type){
return $this->editar_xy($largura, $altura,$type);
}

public function get_salvar_arquivo(){
return $this->salvar_arquivo();
}

protected function editar_xy($largura,$altura,$type){
# cria um novo arquivo do tipo jpeg
$img = imagecreatefromjpeg($this->caminho_tmp);

# descobre a largura da imagem
$x = imagesx($img);

# descobre a altura da imagem
$y = imagesy($img);

# verifica se foi informato o campo y
if($altura == null){
# regra de três para gerar o tamanho da altura da foto
$altura = ($y * $largura) / $x;
}

# cria uma imagem com cor
$nova_img = imagecreatetruecolor($largura, $altura);

# mescla os tamanhos com a imagem
imagecopyresampled($nova_img,$img,0,0,0,0,$largura,$altura,$x,$y);

switch($type){
case "jpeg":
# envia a imagem do tipo jpeg
if(imagejpeg($nova_img,$this->diretorio.$this->rand.$this->caminho_name)){
return $this->diretorio.$this->rand.$this->caminho_name;
}else{
return false;
}

case "jpg":
# envia a imagem jpeg
if(imagejpeg($nova_img,$this->diretorio.$this->rand.$this->caminho_name)){
return $this->diretorio.$this->rand.$this->caminho_name;
}else{
return false;
}

case "gif":
# envia a imagem do tipo gif
if(imagegif($nova_img,$this->diretorio.$this->rand.$this->caminho_name)){
return $this->diretorio.$this->rand.$this->caminho_name;
}else{
return false;
}

case "png":
# envia a imagem do tipo png
if(imagepng($nova_img,$this->diretorio.$this->rand.$this->caminho_name)){
return $this->diretorio.$this->rand.$this->caminho_name;
}else{
return false;
}

default:
# envia a imagem do tipo jpeg
if(imagejpeg($nova_img,$this->diretorio.$this->rand.$this->caminho_name)){
return $this->diretorio.$this->rand.$this->caminho_name;
}else{
return false;
}
}
}

protected function salvar_arquivo(){
# envia o arquivo para o servidor
if(move_uploaded_file($this->caminho_tmp,$this->diretorio.$this->rand.$this->caminho_name)){
return $this->diretorio.$this->rand.$this->caminho_name;
}else{
return false;
}
}
}
?>





1 usuário(s) está(ão) lendo este código

1 membro(s), 0 visitante(s) e 0 membros anônimo(s)