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

Upload de muliplas fotos com thumbnail


wawasurf

Pergunta

Estou fazendo uma galeria de fotos e não estou conseguindo fazer a estrutura de repetição para o envio das fotos. Gostaria de saber onde estou errando no script.

functionsUpload.php

<?php
    function verifica_dimensao_image($img, $max_x, $max_y)
    {
        $dimensaoImage = getimagesize($img["tmp_name"]);
        $dimensao = '';
        // Verifica largura
        if($dimensaoImage[0] > $dimensaoImage[1])
        {
            if($dimensaoImage[0] > $max_x)
            {
                $dimensao = 'largura';
            }
        }
        else
        {
            if($dimensaoImage[0] < $dimensaoImage[1])
            {
                if($dimensaoImage[1] > $max_x)
                {
                    $dimensao = 'altura';
                }
            }
            else
            {
                if($dimensaoImage[0] == $dimensaoImage[1])
                {
                    if($dimensaoImage[0] > $max_x)
                    {
                        $dimensao = 'largura';
                    }
                }
            }
        }
        return ($dimensao);        
    }//fim verifica_dimensao_image
    
    function reduz_imagem($img, $max_x, $max_y, $nome_foto)
    {
        //pega o tamanho da imagem ($original_x, $original_y)
        list($width, $height) = getimagesize($img);
        $original_x = $width;
        $original_y = $height;
        // se a largura for maior que altura
        if($original_x > $original_y) {
               $porcentagem = (100 * $max_x) / $original_x;      
        }
        else {
               $porcentagem = (100 * $max_y) / $original_y;
        }
        $tamanho_x = $original_x * ($porcentagem / 100);
        $tamanho_y = $original_y * ($porcentagem / 100);
        $image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);
        $image   = imagecreatefromjpeg($img);
        imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);
        return imagejpeg($image_p, $nome_foto, 100);
    }//fim reduz_imagem
    
    function verifica_image($img)
    {
        // Verifica se o mime-type do arquivo é de imagem
        if(eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $img["type"]))
        {
            return (TRUE);
        }
        return (FALSE);
    }// fim verifica_image
    
    function verifica_extensao_image($img)
    {
        // Pega extensão do arquivo
        preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $img["name"], $ext);
        return ($ext[1]);
    }//fim verifica_extensao_imag
?>
enviar.php
<form id="form" method="post" action="uploadImage.php" enctype="multipart/form-data" accept-charset="utf-8">
  <p>Foto:
    <input type="file" name="userfile[]" />
</p>
  <p>Foto:
    <input type="file" name="userfile[]" />
</p>
  <p>Foto:
    <input type="file" name="userfile[]" />
</p>
  <p>Foto:
    <input type="file" name="userfile[]" />
</p>
  <p>Foto:
    <input type="file" name="userfile[]" />
</p>
<div id="botao">
          <input id="enviar" type="submit" name="Enviar" value="Enviar" tabindex="6" class="botao"/>
      </div>
    </form>
uploadImage.php
<?php
require_once ("functionsUpload.php");

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

   if($_FILES['userfile']['name'][$i])
   {

$arquivo = isset($_FILES["userfile"][$i]) ? $_FILES["userfile"][$i] : FALSE;
$max_image_x = 500;
$max_image_y = 375;
$diretorio = '/pasta_do_servidor/';
if($arquivo)
{
    $tamanho = getimagesize($arquivo["tmp_name"][$i]);
    ini_set ("max_execution_time", 3600); // uma hora
    $err = FALSE;
    if(is_uploaded_file($arquivo['tmp_name'][$i]))
    {
        if(verifica_image($arquivo))
        {
            $tamanho = getimagesize($arquivo["tmp_name"][$i]);
            $dimensiona = verifica_dimensao_image($arquivo, $max_image_x, $max_image_y);
            if($dimensiona != '')
            {
                if($dimensiona == 'altura')
                {
                        $auxImage = $max_image_x;
                        $max_image_x = $max_image_y;
                        $max_image_y = $auxImage;
                }
            }
            else
            {
                $max_image_x = $tamanho[0];
                $max_image_y = $tamanho[1];
            }
            $nome_foto  = ('maior_' . time() . '.' . verifica_extensao_image($arquivo));// nome único para foto
            $endFoto = $diretorio . $nome_foto;
            if(reduz_imagem($arquivo['tmp_name'][$i], $max_image_x, $max_image_y, $endFoto))
            {
                $err = TRUE;
            }
        }
    }
}

$arquivo2 = isset($_FILES["foto"][$i]) ? $_FILES["foto"][$i] : FALSE;
$max_image_x2 = 120;
$max_image_y2 = 90;
$diretorio2 = '/home/admin/public_html/mercoplaza/admin/noticias/fotos/';
if($arquivo2)
{
    $tamanho2 = getimagesize($arquivo2["tmp_name"][$i]);
    ini_set ("max_execution_time", 3600); // uma hora
    $err2 = FALSE;
    if(is_uploaded_file($arquivo2['tmp_name'][$i]))
    {
        if(verifica_image($arquivo2))
        {
            $tamanho2 = getimagesize($arquivo2["tmp_name"][$i]);
            $dimensiona2 = verifica_dimensao_image($arquivo2, $max_image_x2, $max_image_y2);
            if($dimensiona2 != '')
            {
                if($dimensiona2 == 'altura')
                {
                        $auxImage2 = $max_image_x2;
                        $max_image_x2 = $max_image_y2;
                        $max_image_y2 = $auxImage2;
                }
            }
            else
            {
                $max_image_x2 = $tamanho2[0];
                $max_image_y2 = $tamanho2[1];
            }
            $nome_foto2  = ('menor_' . time() . '.' . verifica_extensao_image($arquivo2));// nome único para foto
            $endFoto2 = $diretorio2 . $nome_foto2;
            if(reduz_imagem($arquivo2['tmp_name'][$i], $max_image_x2, $max_image_y2, $endFoto2))
            {
                $err2 = TRUE;
            }
        }
    }
}



}
}
?>

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Terceiro tópico sobre a mesma coisa né amigão?

http://scriptbrasil.com.br/forum/index.php...mp;#entry502923

http://scriptbrasil.com.br/forum/index.php...mp;#entry502865

Bom, no segundo eu me prestei a analisar e de fato já achei o problema, infelizmente eu só ajudo quem se presta a ler e respeitar as regras, como esse não é o seu caso, boa sorte. E não desista! até o tópico 10 mil você resolve com certeza..

Link para o comentário
Compartilhar em outros sites

  • 0

Olha amigo, não é por nada não, se no segundo tópico você achou o problema, porque você não me ajudou? Assim estou tentando fazer de varias formas pra ve se da certo dai posto um novo tópico aqui pra ve se alguém me ajuda, mais já vi que voce não quer ajudar. Não vo voltar mais aqui, vi que esse forum além de não me ajudar só me atrapalhou. Parabéns pelo seu "grande" forum. :wacko:

Link para o comentário
Compartilhar em outros sites

  • 0
Olha amigo, não é por nada não, se no segundo tópico você achou o problema, porque você não me ajudou?

Como eu disse eu só ajudo quem se presta a ler e respeitar as regras

Assim estou tentando fazer de varias formas pra ve se da certo dai posto um novo tópico aqui pra ve se alguém me ajuda, mais já vi que voce não quer ajudar. Não vo voltar mais aqui, vi que esse forum além de não me ajudar só me atrapalhou. Parabéns pelo seu "grande" forum. :wacko:

Ok, boa sorte na sua busca, vou torcer para que o fórum não acabe sem a sua nobre presença...

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...