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

Enviando Imagem Para Um Diretório


fsphp

Pergunta

Estou fazendo um programinha que envia imagens para um diretório juntamente com suas miniaturas e manda o endereço delas para o banco de dados.

Fiz um "filtro" de tamanhos para que as miniaturas fiquem mais ou menos no mesmo tamanho. Está bem rústico, sei que é possível fazer muito melhor... mas esse é o meu começo.

Esse programinha está com algumas distorções. As vezes eu envio fotos do mesmo tamanho e ele gera miniaturas em tamanhos diferentes!!!! Outras vezes, ele encavala uma foto e não mostra na tela, apesar de já estar no diretório e o endereço no banco de dados.

Se alguém puder dar uma olhada para possíveis correções desses probleminhas eu agradeceria muito, falow?

Segue os scripts:

foto_form_envia_varios_tamanhos.php

<html><head><title>FOTO ÁLBUM - Envia Fotos</title></head>

<body bgcolor="7fffd4">

<h2 align=center>Envie sua Foto para nosso ÁLBUM DE FOTOS!</h2>

<form method=POST action="foto_gera_mini_varios_tam.php" enctype=multipart/form-data>

<p align=center><b>Selecione sua foto: </b><input type="file" size="40" name="imagem"></p>

<p align=center><input type="submit" name="submit" value="Enviar Foto">

<p align="center"><a href="foto_visualizar_formatado.php"><b>VER FOTOS</b></a></p>

<p align="center"><a href="http://localhost/01_localmente/foto_album/dir_criado/foto_admin.htm"><b>

FOTO ADMIN</b></a></p>

</body></html>

foto_gera_mini_varios_tam.php

<?php

set_time_limit (0);

$imagem = $_FILES['imagem']['name'];

$tam_imagem = $_FILES['imagem']['size'];

$arquivo_temporario = $_FILES['imagem']['tmp_name'];

$nome_imagem = "C:Arquivos de programas/EasyPHP1-7/www/01_localmente/foto_album/dir_criado/".$_FILES['imagem']['name'];

if(file_exists($nome_imagem))// && $tam_imagem>2595) acho que é mega

{

  echo "Imagem já existe.";

  exit;

}

 

$move_imagem = move_uploaded_file($_FILES['imagem']['tmp_name'], "C:Arquivos de programas/EasyPHP1-7/www/01_localmente/foto_album/dir_criado/".$_FILES['imagem']['name']);

$tamanho_fixo = "N";

if(!file_exists($imagem))

{

  echo "Arquivo da imagem não encontrado";

  exit;

}

 

$arquivo_miniatura = explode('.', $imagem);

$arquivo_miniatura = $arquivo_miniatura[0]."_mini.jpg";

$img_origem = imagecreatefromjpeg($imagem);

$origem_x = imagesx($img_origem);

$origem_y = imagesy($img_origem);

//echo "$img_origem";

/////////////////// Processa os vários tamanhos de imagens ///////////////////

if($tamanho_fixo == "N");

{

  if($origem_x > $origem_y)

      {

        if($origem_x>1 && $origem_x<=640)

            {

            $x = intval($origem_x * 15/100);

            $y = intval($origem_y * 15/100);

            }

            elseif($origem_x>641 && $origem_x<=1024)

            {

            $x = intval($origem_x * 12/100);

            $y = intval($origem_y * 12/100);

            }

            elseif($origem_x>1025 && $origem_x<=1280)

            {

            $x = intval($origem_x * 8/100);

            $y = intval($origem_y * 8/100);

            }

            elseif($origem_x>1281 && $origem_x<=1472)

            {

            $x = intval($origem_x * 7/100);

            $y = intval($origem_y * 7/100);

            }

            elseif($origem_x>1475 && $origem_x<=1600)

            {

            $x = intval($origem_x * 6/100);

            $y = intval($origem_y * 6/100);

            }

            elseif($origem_x>1601 && $origem_x<=1795)

            {

            $x = intval($origem_x * 5/100);

            $y = intval($origem_y * 5/100);

            }

            elseif($origem_x>1796 && $origem_x<=2048)

            {

            $x = intval($origem_x * 4/100);

            $y = intval($origem_y * 4/100);

            }

            elseif($origem_x>2049 && $origem_x<=2592)

            {

            $x = intval($origem_x * 3/100);

            $y = intval($origem_y * 3/100);

            }

            elseif($origem_x>2593)

            {

            echo "<b>Imagem muito grande. Por favor, reduza o tamanho da mesma!</b>";

            unlink("C:Arquivos de programas/EasyPHP1-7/www/01_localmente/foto_album/dir_criado/".$_FILES['imagem']['name']);

            exit;

            }

      }

      elseif($origem_y > $origem_x)

      {

        if($origem_y>1 && $origem_y<=640)

            {

            $x = intval($origem_x * 15/100);

            $y = intval($origem_y * 15/100);

            }

            elseif($origem_y>641 && $origem_y<=1024)

            {

            $x = intval($origem_x * 12/100);

            $y = intval($origem_y * 12/100);

            }

            elseif($origem_y>1025 && $origem_y<=1280)

            {

            $x = intval($origem_x * 8/100);

            $y = intval($origem_y * 8/100);

            }

            elseif($origem_y>1281 && $origem_y<=1472)

            {

            $x = intval($origem_x * 7/100);

            $y = intval($origem_y * 7/100);

            }

            elseif($origem_y>1475 && $origem_y<=1600)

            {

            $x = intval($origem_x * 6/100);

            $y = intval($origem_y * 6/100);

            }

            elseif($origem_y>1601 && $origem_y<=1795)

            {

            $x = intval($origem_x * 5/100);

            $y = intval($origem_y * 5/100);

            }

            elseif($origem_y>1796 && $origem_y<=2048)

            {

            $x = intval($origem_x * 4/100);

            $y = intval($origem_y * 4/100);

            }

            elseif($origem_y>2049 && $origem_y<=2592)

            {

            $x = intval($origem_x * 3/100);

            $y = intval($origem_y * 3/100);

            }

            elseif($origem_y>2593)

            {

            echo "<b>Imagem muito grande. Por favor, reduza o tamanho da mesma!</b>";

            unlink("C:Arquivos de programas/EasyPHP1-7/www/01_localmente/foto_album/dir_criado/".$_FILES['imagem']['name']);

            exit;

            }

      }

}

//////////////////////////////////////////////////////////////////

     

$img_final = ImageCreateTrueColor($x, $y);

ImageCopyResampled($img_final, $img_origem, 0, 0, 0, 0, $x+1, $y+1, $origem_x, $origem_y);

ImageJPEG($img_final, $arquivo_miniatura);

//echo "$img_final";

ImageDestroy($img_origem);

ImageDestroy($img_final);

?>

<html><head><title>Gera Arquivos de Fotos</title></head>

<body bgcolor=f0ffff">

<p align=center>

<?php

include "include.php";

mysql_connect($hostname, $username, $password);

mysql_select_db($database);

$caminho = "http://localhost/01_localmente/foto_album/dir_criado";

$foto_endereco = "$caminho/$imagem";

$mini_endereco = "$caminho/$arquivo_miniatura";

$insere = mysql_query("INSERT INTO foto_album (foto, mini, foto_endereco, mini_endereco)

                      VALUES ('$imagem', '$arquivo_miniatura', '$foto_endereco', '$mini_endereco')");

if(mysql_affected_rows() == 1)

{

  echo "<b>Fotos inseridas com sucesso!</b><br>";

}

else

  {

      echo "Não foi possível inserir as fotos no banco de dados<br>";

  }

//echo "<a href=\"$imagem\"><b>$imagem</b></a><br>";

//echo "<a href=\"$arquivo_miniatura\"><b>$arquivo_miniatura</b></a>";

?>

<p align="center"><a href="http://localhost/01_localmente/foto_album/dir_criado/foto_visualizar_formatado.php">

<b>VISUALIZAR FOTOS</b></a></p>

<p align="center"><a href="http://localhost/01_localmente/foto_album/dir_criado/foto_form_envia.htm"><b>ENVIAR OUTRA FOTO</b></a></p>

<p align="center"><a href="http://localhost/01_localmente/foto_album/dir_criado/foto_admin.htm"><b>FOTO ADMIN</b></a></p>

</body></html>

foto_visualizar_formatado.php

<?php

include "include.php";

mysql_connect($hostname, $username, $password);

mysql_select_db($database);

echo "<p align=\"center\"><a href=\"http://localhost/01_localmente/foto_album/dir_criado/foto_form_envia.htm\"><b>ENVIAR OUTRA FOTO</b></a></p>";

echo "<p align=\"center\"><a href=\"http://localhost/01_localmente/foto_album/dir_criado/foto_admin.htm\"><b>FOTO ADMIN</b></a></p>";

$seleciona = mysql_query("SELECT * FROM foto_album");

$linhas = mysql_num_rows($seleciona);

for($i=0; $i<$linhas; $i++)

{

  $dados = mysql_fetch_array($seleciona);

  $imagem = $dados[0];

  $arquivo_miniatura = $dados[1];

  $foto_endereco = $dados[2];

  $mini_endereco = $dados[3];

            // = = = = = = =CRIA A TABELA COM AS COLUNAS = = = = = =  //

echo "<table cellspacing=25 cellpading=15 border=5>";

echo "<tr>";

$a=0;

while($r = mysql_fetch_array($seleciona)){

if($a%5==0 && $a>0)

{

echo "</tr><tr>";}

echo "<td><a href=\"",$r["foto_endereco],"\"><img src=\"",$r["mini_endereco"],"\"><br><b>",$r["foto"],"</b></a></td>";

$a++;

}

echo "</table>";

}

?>

Valeu pela força pessoal!

T+ wink.gif

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

As imagens não estão distorcidas. Eu tentei colocar mais ou menos para que os tamanhos ficassem proporcionais, dependendo do que o usuário enviar. O ideal é que todos os tamanhos das miniaturas ficassem iguais, mas eu não sei fazer esse tipo de controle. Acho que elas ficando mais ou menos no mesmo tamanho está bem.

O que acontece é que, trabalhando localmente, geralmente a primeira imagem que insiro no programa parece que fica travada em algum lugar pois não é mostrada, só isso. Sempre a primeira.

Como estou sempre deletando todas as imagens para não ficar pesado durante os testes, não sei exatamente quando o programa trava uma imagem, se é só a primeira da fila (a primeira enviada ao diretório e banco de dados) ou se a primeira da vez que vou inserir. Vou notar melhor isso. Conseguiu entender agora?

Link para o comentário
Compartilhar em outros sites

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,4k
    • Posts
      652,2k
×
×
  • Criar Novo...