Ir para conteúdo
Fórum Script Brasil
  • 0

upload image


arldin

Pergunta

Bom dia a todos eu tenho um script de upload image que cria thumb salva no mysql e no diretorio as imagem tanto a orinal quanto a thumb

O que eu gostaria de saber se tem como diminuir a imagem original tambem

Este e o script

<?php
require_once('classes/CMySQL.php');
  
if($_GET['action']=='filename'){


$num 	= $_POST['id'];
$campos = $_POST['campos'];


$dir = "images/$num";
//tamanhos para criar as thumbs
$largura_final = 256;
$altura_final  = 205;

@mkdir($dir);

if ($handle = @opendir($dir)) {

while (false !== ($filez = readdir($handle))){

if ($filez != "." && $filez != ".."){

$filez  = substr($filez,0,-4);
$filez2.="$filez-*-";}}
$filez2 = substr($filez2, 0, -3);
$filez3 = explode("-*-", $filez2);

natsort ($filez3);

$quanti = count($filez3);

$quanti--;

$y = $filez3[$quanti];
$y = substr($y, -2);

closedir($handle);}

$f_name = $_FILES['file']['name'];
$f_tmp  = $_FILES['file']['tmp_name'];
$f_type = $_FILES['file']['type'];

$cont=0;

$p = $y;

$title = $_POST['title'];
$description = $_POST['description'];
$comments_count = $_POST['comments_count'];
$when = $_POST['when'];

for($i=0;$i<$campos;$i++){

$name  = $f_name[$i];
$file  = explode(".",$name);
$filec = count($file);
$filec = $filec-1;
$file  = $file[$filec];
$title = $title[$i];
$description = $description[$i];
$comments_count = $comments_count[$i];
$when = $when[$i];
$patha = $dir."$num"."$name";
$nome  = "$num"."$name";

if ( ($name!="") and (is_file($f_tmp[$i]))){
	if ($cont==0){
	  echo "<b>Arquivo(s) enviados:<br /></b>";
	}

	  echo $patha." - ";

	  $up = move_uploaded_file($f_tmp[$i], $patha);
	  
	  //criar thumb a função verifica a extensão do arquivo e cria a thumb a partir disso
	  if(preg_match("/.jpg/i", "$nome")){
	  $format = 'image/jpeg';
		}
		if (preg_match("/.gif/i", "$nome")){
	  $format = 'image/gif';
		}
		if(preg_match("/.png/i",  "$nome'")){
	  $format = 'image/png';
		}
		if($format!=''){
	  $tamanho = getimagesize($dir.$nome);
	  $largura_fonte  = $tamanho[0];
	  $altura_fonte   = $tamanho[1];

	  switch($format){
	  case 'image/jpeg':
		  $source = imagecreatefromjpeg($dir.$nome);
		  break;
		  case 'image/gif';
		  $source = imagecreatefromgif($dir.$nome);
		  break;
		  case 'image/png':
		  $source = imagecreatefrompng($dir.$nome);
		  break;
	  }
	  $nome_thumb	 = substr($nome,0,strpos(".",$nome))."thumb_".substr($nome,strpos(".",$nome));
	  
	  $imagem_destino = imagecreatetruecolor($largura_final,$altura_final);
	  imagealphablending($imagem_destino, false);
	  imagecopyresized($imagem_destino, $source, 0, 0, 0, 0, $largura_final, $altura_final, $largura_fonte, $altura_fonte);
	  @imagejpeg($imagem_destino, $dir.$nome_thumb, 70);
		  imagedestroy($source);
		  imagedestroy($imagem_destino);
	  }
	  //fim do thumb

		if ($up==true):
			echo  "<i>Enviado!</i>";
			  $cont++;
				$GLOBALS['MySQL']->res("INSERT INTO `s281_photos` SET `title` = '{$title}',
 `filename` = '{$nome}', `description` = '{$description}',`when` = UNIX_TIMESTAMP(),
 `comments_count` = '{$comments_count}', `thumb` = 'thumb_{$nome}'");

		else:
			echo "<i>Falhou!</i>";
		endif;

	  echo "<br />";
  }
}

echo ($cont!=0) ? "<script>alert(\"Total de arquivos enviados: $cont\");
	   location.href=\"index.php\"</script>": "<script>alert(\"Nenhum arquivo foi enviado!\");
	   location.href=\"\"</script>";
}
?>
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...