Jump to content


Photo

Upload E Thumbnail


  • Faça o login para participar
6 replies to this topic

#1 Arruda

Arruda

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 04/04/2007, 00:09

Olá pessoal,

segue abaixo um script prontinho pra vocês que precisam fazer Upload e criar um Thumbnail, porém ele só aceita arquivos em JPG.

Me ajudem de uma maneira bem simples, pois não entendo nada de PHP.

Quero que o script aceite JPG, GIF, PNG, BMP e JPEG

E limite as dimensões largura e altura e o peso máximo do arquivo.

Como postei na 3º resposta abaixo.

formulário.htm
<html><head><title>Upload de Imagens</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body><form action="envia.php" method="post" enctype="multipart/form-data">  Envie sua foto para o site!   <input type="file" name="image">  <BR><input type="submit" value="Enviar Foto!"></form></body></html>



envia.php
<?$size_h = 80;    $size_w = 120;    $filedir = 'fotos/'; //diretorio da foto    $thumbdir = 'fotos/'; //diretorio do thumbnail    $prefix = 'tbn_'; //prefixo da thumbnail    $maxfile = '2000000';    $mode = '0666';		preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);        $userfile_name = $_FILES['image']['name'];    $userfile_tmp = $_FILES['image']['tmp_name'];    $userfile_size = $_FILES['image']['size'];    $userfile_type = $_FILES['image']['type'];            if (isset($_FILES['image']['name']))    {        $prod_img = $filedir.$userfile_name;        $prod_img_thumb = $thumbdir.$prefix.$userfile_name;        move_uploaded_file($userfile_tmp, $prod_img);        chmod ($prod_img, octdec($mode));                $sizes = getimagesize($prod_img);        $aspect_ratio = $sizes[1]/$sizes[0];        if ($sizes[1] <= $size)        {            $new_width = $sizes[0];            $new_height = $sizes[1];        }else{            $new_height = $size_h;            $new_width = $size_w;//para redimensionar de acordo com a altura, comente a linha acima e descomente a abaixo            //$new_width = abs($new_height/$aspect_ratio);        }        $destimg=ImageCreateTrueColor($new_width,$new_height)            or die('Erro ao criar imagem');        $srcimg=ImageCreateFromJPEG($prod_img)            or die('Erro ao abrir arquivo fonte');        if(function_exists('imagecopyresampled'))        {            imagecopyresampled($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg))or die('Erro ao redimensionar: x001');}else{            Imagecopyresized($destimg,$srcimg,0,0,0,0,$new_width,$new_height,ImageSX($srcimg),ImageSY($srcimg))or die('Erro ao redimensionar: x002');}ImageJPEG($destimg,$prod_img_thumb,90)or die('Erro ao salvar');imagedestroy($destimg);        }?>

Preciso muito dessa ajuda.

Acabei de me cadastrar no Fórum,
meu e-mail: andre-arruda@hotmail.com


Deus os abençoe!

Edição feita por: Arruda, 04/04/2007, 09:55.


#2 kurole

kurole

    Ativo

  • Usuários
  • 345 posts
  • Sexo:Não informado

Posted 04/04/2007, 00:22

vamos lá vou dar uma dica

se vc usa isso

$srcimg=ImageCreateFromJPEG($prod_img)

quando for gif tem que ser assim e assim por diante

$srcimg=ImageCreateFromGIF($prod_img)


KUROLE

#3 diego.rodriguez

diego.rodriguez

    Hey Ho Let's Go!

  • Usuários
  • 497 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte | MG
  • Interesses:.: programação<br />.: fotografia<br />.: PHP<br />.: punk rock/hc<br />.: games<br />.: brahma

Posted 04/04/2007, 09:07

vamos lá vou dar uma dica

se vc usa isso

$srcimg=ImageCreateFromJPEG($prod_img)

quando for gif tem que ser assim e assim por diante

$srcimg=ImageCreateFromGIF($prod_img)


KUROLE



mas tem q ver qual a versao da biblioteca gd dele, na versao 1.6 n rola mais essa funçao com gif

#4 Arruda

Arruda

    Novato no fórum

  • Usuários
  • 6 posts
  • Sexo:Não informado

Posted 04/04/2007, 09:50

vamos lá vou dar uma dica

se vc usa isso

$srcimg=ImageCreateFromJPEG($prod_img)

quando for gif tem que ser assim e assim por diante

$srcimg=ImageCreateFromGIF($prod_img)


KUROLE



KUROLE,

como eu disse eu não entendo nada de PHP, pode descrever no código como ficaria pra mim, por favor?

Pessoal, pra ficar mais fácil de enteder o que eu preciso enclementar no script novo.php que expus no começo segue abaixo um ótimo exemplo de um script que verifica se o arquivo é uma imagem e limita as dimensões de altura, largura e peso dele. (só não faz thumbnail como o novo.php - o que eu tbm preciso..)


<?$erro = $config = array();// Prepara a variável do arquivo$arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;// Tamanho máximo do arquivo (em bytes)$config["tamanho"] = 3000000;// Largura máxima (pixels)$config["largura"] = 10000000;// Altura máxima (pixels)$config["altura"] = 10000000;// Formulário postado... executa as açõesif($arquivo){// Verifica se o mime-type do arquivo é de imagemif(!eregi("^image\/(pjpeg|jpeg|gif|bmp)$", $arquivo["type"])){$erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg,bmp ou gif. Envie outro arquivo";}else{// Verifica tamanho do arquivoif($arquivo["size"] > $config["tamanho"]){$erro[] = "Arquivo em tamanho muito grande!A imagem deve ser de no máximo " . $config["tamanho"] . " bytes.Envie outro arquivo";}// Para verificar as dimensões da imagem$tamanhos = getimagesize($arquivo["tmp_name"]);// Verifica larguraif($tamanhos[0] > $config["largura"]){$erro[] = "Largura da imagem não deveultrapassar " . $config["largura"] . " pixels";}// Verifica alturaif($tamanhos[1] > $config["altura"]){$erro[] = "Altura da imagem não deveultrapassar " . $config["altura"] . " pixels";}}// Imprime as mensagens de erroif(sizeof($erro)){foreach($erro as $err){echo " - " . $err . "<BR>";}echo "<a href=\"foto.html\">Fazer Upload de Outra Imagem</a>";}// Verificação de dados OK, nenhum erro ocorrido, executa então o upload...else{// Pega extensão do arquivopreg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);// Gera um nome único para a imagem$imagem_nome = md5(uniqid(time())) . "." . $ext[1];// Caminho de onde a imagem ficará$imagem_dir = "fotos/" . $imagem_nome;// Faz o upload da imagemmove_uploaded_file($arquivo["tmp_name"], $imagem_dir);echo "Sua imagem foi enviada com sucesso!,$imagem_nome";}}?>


Lembrando que eu preciso que aquele que eu postei lá no 1º tópico, faça as funções de limitar dimensão, peso e certificação que o arquivo é uma imagem como esse código aí faz.

Só que como eu disse,
não entendo de PHP quem puder acrescentar essas funções no novo.php ou fazer esse aí criar thumbnail eu agradeço.

#5 --The Matrix--

--The Matrix--

    Normal

  • Usuários
  • 118 posts
  • Sexo:Masculino
  • Localidade:Avaré - SP

Posted 05/05/2007, 15:58

Bom eu achei o código útil e resolvi o problema mesmo depois de tanto tempo postado.

Você deve por:

if($userfile_type == "image/jpeg"){
$srcimg=ImageCreateFromJPEG($prod_img);
} else if ($userfile_type == "image/gif"){
$srcimg=ImageCreateFromGIF($prod_img);
} else if ($userfile_type == "image/png"){
$srcimg=ImageCreateFromPNG($prod_img);
}

no lugar de:

$srcimg=ImageCreateFromJPEG($prod_img)
or die('Erro ao abrir arquivo fonte');

Ricardo Crivelli
Delphi Developer Certified
CobiT Foundation 4.1 Certified
@ricocrivelli
4Bytes Inc. - Desenvolvimento de sistemas especialistas web.

#6 rafaelcastro

rafaelcastro

    12 Horas

  • Usuários
  • 294 posts
  • Sexo:Masculino
  • Localidade:Dourados/MS

Posted 01/06/2007, 22:40

Pessoal, deixa eu pegar um gancho aqui no tópico... Estou com um problema aqui...

$nome_foto = geranome('jpg', "fotos/");

if (copy($file['tmp_name'][$i], "fotos/$nome_foto"))
{
// CARREGA A IMAGEM ORIGINAL
$imagem = ImageCreateFromJPEG("fotos/$nome_foto");

// REDIMENSIONA A IMAGEM
$imagem1 = redimensiona($imagem,350,263);
ImageJPEG($imagem1,"fotos/$nome_foto",100);

// GERA O DESTAQUE
$dest = redimensiona($imagem1,170,128);
ImageJPEG($dest,"destaque/$nome_foto",100);

// GERA A MINIATURA
$thumb = redimensiona($dest,120,90);
ImageJPEG($thumb,"thumbs/$nome_foto",100);
}

tá dando as seguintes mensagens

Warning: imagecreatetruecolor(): requires GD 2.0 or later in /var/www/rafael/febesul/albuns_fotos/funcoes.php on line 50

Warning: imagecopyresampled(): requires GD 2.0 or later in /var/www/rafael/febesul/albuns_fotos/funcoes.php on line 58

Warning: imagejpeg(): supplied argument is not a valid Image resource in /var/www/rafael/febesul/albuns_fotos/envia_imagem1.php on line 46

Warning: imagejpeg(): supplied argument is not a valid Image resource in /var/www/rafael/febesul/albuns_fotos/envia_imagem1.php on line 50

ONDE A LINHA 50 É
ImageJPEG($thumb,"thumbs/$nome_foto",100);

ONDE A LINHA 46 É
ImageJPEG($dest,"destaque/$nome_foto",100);

1. Que mensagem é essa?
2. O que estou errando?

Abraço a todos

#7 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 02/06/2007, 09:55

Olá.

Warning: imagecreatetruecolor(): requires GD 2.0 or later in /var/www/rafael/febesul/albuns_fotos/funcoes.php on line 50

Warning: imagecopyresampled(): requires GD 2.0 or later in /var/www/rafael/febesul/albuns_fotos/funcoes.php on line 58

Precisa da Biclioteca GD 2.0.
Instale ela.

Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap





1 user(s) are reading this topic

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

IPB Skin By Virteq