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

upload de imagem quase tudo certo, erro?


Tesla

Pergunta

olha pessoal, to fazendo um sistema de upload e redimensionamento de imagem, no meu ver está no código, mas está retornando a seguinte mensagem de erro:

Warning: Division by zero in C:\apache\www\formatar_msg.php on line 15

Seu Arquivo foi Envidao Com Sucesso!

aqui o arquivo que envia a imagem:

<?php
if (empty($_POST['validar'])) {
$var = '<form method="post" action="'.$_SERVER["PHP_SELF"].'">
<input type="file" name="imagemx"><br>
<input type="text" name="nome">
<input type="hidden" name="validar" value="validar"><br>
<input type="submit"></form>';
echo $var;
}
else {
include ("formatar_msg.php");
$file = $_FILES['imagemx'];
$nome = $_POST['nome'];
redimg ($file, $nome, 100, 100);
echo $file;
echo "Seu Arquivo foi Envidao Com Sucesso!";
}
?>
aqui o arquivo formatar msg q contem a função "redimg"
<?php
//---------------------- Redimensiona imagem
function redimg ($imagem, $nome, $larg, $altu) { //-------- Diretorio da img, nome da imagem, $lagura desejada, $altura desejada
$file = getimagesize($imagem);
$fileh = $file[1]; //----- Altura
$filew = $file[0]; //----- Largura
$filetype = $file[2]; //----- Extensão
$suporttype = array ('1','2','3'); //------- Extensões de retorno = suporte de filetype
$desttype = in_array ($filetype, $suporttype); //---------- Retorna true se suporta extensão, caso contrário false
$destexten = ''; //------------ inicializa a variável de extenção
$desth = $altu; //-------------altura max
$destw = $larg; //------------- largura max
$qual = 100; //------ Qualidade da Imagem 0 a 100
$propimg = $filew / $fileh; //---------------proporção do arquivo original
$diretorio = 'imgs/user_avatar/';//------------ Diretório da img
if ($desttype) { //-------------Se for suportada a extenção
   if ($filew > $destw) //---------proporção de largura
   {
      $filew = $destw;
      $fileh = $filew / $propimg;
      if ($filehl > $desth) //---------proporção de altura
      {
         $fileh = $desth;
         $filew = $fileh * $propimg;
         
      }
   }
   $tam=array();//-------------- array com info da imagem
   $tam['larg']=$filew;
   $tam['alt']=$fileh;
   //------------------- Começa a tratar a imagem
   if ($filetype == '1'){ //---------- GIF
     $destexten = '.gif';
     $tam['ext']=$destexten;
          $img_ori = imagecreatefromgif ($file);//-------- Carrega img original
     $tmp_img = imagecreatetruecolor($tam['larg'], $tam['alt']); //---------  Cria uma imagem sem nada
     imagecopyresized( $tmp_img, $img_ori, 0, 0, 0, 0, $tam['larg'], $tam['alt'], $filew, $fileh ); //------- Trabalha a Imagem
     $updire = $diretorio.$nome.'.gif'; //---------- Direotrio da img, com nome e extensão
     imagegif( $tmp_img, $updire, $qual );
     }
     elseif ($filetype == '2'){ //------------ JPG
     $destexten = '.jpg';
     $tam['ext']=$destexten;
     $img_ori = imagecreatefromjpeg ($file);//-------- Carrega img original
     $tmp_img = imagecreatetruecolor($tam['larg'], $tam['alt']); //---------  Cria uma imagem sem nada
     imagecopyresized( $tmp_img, $img_ori, 0, 0, 0, 0, $tam['larg'], $tam['alt'], $filew, $fileh ); //------- Trabalha a Imagem
     $updire = $diretorio.$nome.'.jpg'; //---------- Direotrio da img, com nome e extensão
     imagejpeg( $tmp_img, $updire, $qual );
     }
     elseif ($filetype == '3') {//----------- PNG
     $destexten = '.png';
     $tam['ext']=$destexten;
          $img_ori = imagecreatefrompng ($file);//-------- Carrega img original
     $tmp_img = imagecreatetruecolor($tam['larg'], $tam['alt']); //---------  Cria uma imagem sem nada
     imagecopyresized( $tmp_img, $img_ori, 0, 0, 0, 0, $tam['larg'], $tam['alt'], $filew, $fileh ); //------- Trabalha a Imagem
     $updire = $diretorio.$nome.'.png'; //---------- Direotrio da img, com nome e extensão
     imagepng( $tmp_img, $updire, $qual );
     }
}
else { //-------- Se a extensão for inválida
$string = 1;
return $string;
}
}
?>

Ele está falando, q quando eu vou calcular a proporção eu estou dividindo por zero, mas como? Se a variável $fileh pega a altura via getimagesize($imagem) e filew tb?

como resolvo esse incoveniente erro?

edit---------------- Preciso disso pra hoje Socoorrrooo

Editado por Tesla
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

olha só q curioso e escroto ao mesmo tempo, fiz um codigo só pra testar, ele só faz o upload da imagem mais nada e salva como lo.jpg no diretório temp_files ae o codigo

<?php
if (empty($_POST['validar'])) {
$var = '<form method="post" action="'.$_SERVER["PHP_SELF"].'">
<input type="file" name="x"><br>
<input type="text" name="nome">
<input type="hidden" name="validar" value="validar"><br>
<input type="submit"></form>';
echo $var;
}
else {
include ("imagem_resize.php");
$imagem = $_FILES["x"];
$nome = $_POST['nome'];
upimg ($imagem);
echo "Seu Arquivo foi Envidao Com Sucesso!";
}
?>
codigo da função
<?php
function upimg($imagem) {
if (is_uploaded_file($imagem))
echo "é um upload<br>";
else
echo "não é um upload<br>";
//-------------- Diretório temporário
$temp_dir = "temp_files/lo.jpg";
echo $temp_dir;
//-------------- Copia a imagem original para um diretório temporário
$upload = move_uploaded_file($imagem, $temp_dir);
if ($upload)
echo "<br>ok<br>";
else
echo "<br>falhou<br>";
//-------------- Pega os Tamanhos da Imagem
list ($x, $y, $type) = getimagesize($imagem);
}
?>

ele está imprimindo:

não é um upload

temp_files/lo.jpg

falhou

Seu Arquivo foi Envidao Com Sucesso!

ou seja, como se eu não tivesse passado nada pra função, nenhum upload, seria algum erro na form?

Link para o comentário
Compartilhar em outros sites

  • 0

mals ae

<_< hauuhaauhhu resolvi o problema, agora veio otro, ao invés de reduzir o tamanho da imagem, tah recortando ela com as dimensões certas, mas eu n quero que recorte eu quero que reduza ela, a função tah assim:

function upresimg ($imagem, $nome, $larg, $altu) { //-------- Diretorio da img, nome da imagem, $lagura desejada, $altura desejada
$file = getimagesize($imagem);
list($filew, $fileh) = getimagesize($imagem);
$filetype = $file[2]; //----- Extensão
$suporttype = array ('1','2','3'); //------- Extensões de retorno = suporte de filetype
$desttype = in_array ($filetype, $suporttype); //---------- Retorna true se suporta extensão, caso contrário false
$destexten = ''; //------------ inicializa a variável de extenção
$desth = $altu; //-------------altura max
$destw = $larg; //------------- largura max
$qual = 100; //------ Qualidade da Imagem 0 a 100
echo 'alt.larg<br>'.$filew.'x'.$fileh.'<br>'.$destw.'x'.$desth;
$propimg = $filew / $fileh; //---------------proporção do arquivo original
$diretorio = 'imgs/user_avatar/';//------------ Diretório da img
if ($desttype) { //-------------Se for suportada a extenção
   if ($filew > $destw) //---------proporção de largura
   {
      $filew = $destw;
      $fileh = $filew / $propimg;
      if ($filehl > $desth) //---------proporção de altura
      {
         $fileh = $desth;
         $filew = $fileh * $propimg;
         
      }
   }
   $tamx=$filew;
   $tamy=$fileh;
   //------------------- Começa a tratar a imagem
   if ($filetype == '1'){ //---------- GIF
          $img_ori = imagecreatefromgif ($imagem);//-------- Carrega img original
     $tmp_img = imagecreatetruecolor($tamx, $tamy); //---------  Cria uma imagem sem nada
     imagecopyresized( $tmp_img, $img_ori, 0, 0, 0, 0, $tamx, $tamy, $filew, $fileh ); //------- Trabalha a Imagem
     $updire = $diretorio.$nome.'.gif'; //---------- Direotrio da img, com nome e extensão
     imagegif( $tmp_img, $updire, $qual );
     }
     elseif ($filetype == '2'){ //------------ JPG
         $img_ori = imagecreatefromjpeg ($imagem);//-------- Carrega img original
     $tmp_img = imagecreatetruecolor($tamx, $tamy); //---------  Cria uma imagem sem nada
     imagecopyresized( $tmp_img, $img_ori, 0, 0, 0, 0, $tamx, $tamy, $filew, $fileh ); //------- Trabalha a Imagem
     $updire = $diretorio.$nome.'.jpg'; //---------- Direotrio da img, com nome e extensão
     imagejpeg( $tmp_img, $updire, $qual );
     }
     elseif ($filetype == '3') {//----------- PNG
          $img_ori = imagecreatefrompng ($imagem);//-------- Carrega img original
     $tmp_img = imagecreatetruecolor($tamx, $tamy); //---------  Cria uma imagem sem nada
     imagecopyresized( $tmp_img, $img_ori, 0, 0, 0, 0, $tamx, $tamy, $filew, $fileh ); //------- Trabalha a Imagem
     $updire = $diretorio.$nome.'.png'; //---------- Direotrio da img, com nome e extensão
     imagepng( $tmp_img, $updire, $qual );
     }
}
else { //-------- Se a extensão for inválida
$string = 1;
return $string;
}
}

o que eu devo alterar alterar para que reduza e não recorte?

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