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

Upload De Foto


|Alucard|

Pergunta

seguinte, eu segui o tutorial que tem na iMasters de fazer um sistema de fotos (tipo um fotolog)... mas acontece que ele só aceita .jpg... eu tentei fazer tudo p/ ele aceitar .gif... mas ele grava a imagem como um quadrado preto... como eu posso arrumar??? abaixo segue a funcao que ele gera a imagem final (eu ponho a img original num form, ai com essa funcao ele redimensiona e salva a "imagem nova" na pasta que eu escolhi, se for jpg funciona, se for gif, retorna um quadrado preto)

function geraImg($img, $max_x, $max_y, $imgNome) {
  //aqui pega o tamanho original da foto
list($width, $height) = getimagesize($img);
$original_x = $width;
$original_y = $height;
  //calculando o tamanho de acordo com a 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, $imgNome, 100);
}
ai eu chamo assim
geraImg($fotoTmp, 640, 480, "../fotos/".$foto);

alguém ai pode me ajudar a fazer isso aceitar .gif também??

valeu =]

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

tipow, eu queria fazer o upload da foto, mas a foto teria que ser redimensionada (o tamanho max é 640x480) e gravar o endereço dela (no caso "../fotos/nomedafoto.ext" no meu banco de dados =]

não tem jeito de só colocar aquela funcao que eu passei ali p/ aceitar qualquer ext de arquivo (eu ate tentei colocar uns if ali p/ verificar a extensao e modificar o imagecreatefromjpeg() p/ imagecreatefromgif()... etc mas não deu muito certo)

se puder, envia esse teu script ai p/ mim =]... valeu =]

Link para o comentário
Compartilhar em outros sites

  • 0

Bom o meu é simples, qualquer coisa olha o script do meu e comparada com o seu e vai futucando ai, você pode ate fazer isso que você quer :D

está ai o meu:

<?php

//Diretório aonde ficará os arquivos
$dir = "./";

//Extensões permitidas
$ext = array("gif","jpg","png");

//Quant. de campos do tipo FILE
$campos = 6;

//Formulário
echo '<form method="post" action="'.$PHP_SELF.'" enctype="multipart/form-data">
  Arquivo: <input type="file" name="file[]"><br />
  Arquivo: <input type="file" name="file[]"><br />
  Arquivo: <input type="file" name="file[]"><br />
  Arquivo: <input type="file" name="file[]"><br />
  Arquivo: <input type="file" name="file[]"><br />
  Arquivo: <input type="file" name="file[]"><br />
  <input type="submit" name="submit" value=" OK ">
  </form>';


//Se for enviado
if (isset($_POST['submit'])) {

//Obtendo info. dos arquivos
$f_name = $_FILES['file']['name'];
$f_tmp = $_FILES['file']['tmp_name'];
$f_type = $_FILES['file']['type'];


//Contar arquivos enviados
$cont=0;

//Repetindo de acordo com a quantidade de campos FILE
for($i=0;$i<$campos;$i++){

//Pegando o nome
$name = $f_name[$i];

//Verificando se o campo contem arquivo
  if ( ($name!="") and (is_file($f_tmp[$i])) and (in_array(substr($name, -3),$ext)) ) {

    if ($cont==0) {
      echo "<b>Arquivo(s) enviados:<br /></b>";
    }
      echo $name." - ";

      //Movendo arquivo's do upload
      $up = copy($f_tmp[$i], $dir.$name);

        //Status
        if ($up==true):
            echo  "<i>Enviado!</i>";
              $cont++;
        else:
            echo "<i>Falhou!</i>";
        endif;

      echo "<br />";
  }

}

echo ($cont!=0) ? "<br><i>Total de arquivos enviados: </i>".$cont : "Nenhum arquivo foi enviado!";
}
?>

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...