Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fabiossmn

[Resolvido] Redimensionamento de imagem e move_uploaded_file

Recommended Posts

Boa tarde, bom eu estava procurando pela net, como fazer um upload de imagens com redimensionamento, até achei e tals, mais o que eu realmente presciso é fazer o redimensionamento da imagem e mandar a imagem grande, no caso a imagem grande na em pasta imgG e a pequena na imgP, enfim..o script de redimensionamento até deu certo, mais mandar a imagem grande nao deu, vou mandar o codigo para ver o que aconteceu:

 

index.php

<?php
if(isset($_POST['acao']) && $_POST['acao'] == 'cadastrar'){
        $foto = $_FILES['foto'];
        if($foto['type'] == 'image/jpeg'){
           require("funcao/funcao_upload.php");
           $name = md5(uniqid(rand(), true)).".jpg";            
           Redimensionar($foto, $name, 150, "images");
        }   
     } 

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Upload e Redimensionamento de Imagens</title>
</head>

<body>

<form method="post" action="" enctype="multipart/form-data">
  <label>Foto<input type="file" name="foto" /></label>
   <input type="submit" value="Enviar" />
   <input type="hidden" name="acao" value="cadastrar" />
</form>

</body>
</html>

 

funcao_upload.php

<?php
// faz o redimensionamento
       function Redimensionar($imagem, $name, $largura, $pasta){
               $img = imagecreatefromjpeg($imagem['tmp_name']);
               $x   = imagesx($img);
               $y   = imagesy($img);
               $altura = ($largura * $y)/$x;
               $nova = imagecreatetruecolor($largura, $altura);
               imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
               imagejpeg($nova, "$pasta/$name");
               imagedestroy($img);
               imagedestroy($nova);
			return $name;
//era pra fazer o upload da imagem grande
		$foto = $_FILES['foto'];
		move_uploaded_file($foto['tmp_name'], "images/".$name);
		}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

:S

coloquei o return embaixo de todo o codigo, mais agora a imagem grande que fez o upload e a pequena não ;/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente a imagem grande (original) está substituindo a que você redimensionou, pois você está usando o mesmo nome e pasta para as duas.

 

Dê uma analisada no seu código e faça as correções.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cada imagem vem com um nome diferente, pq eu coloquei lá o md5 pra criptografar.

entaum no caso seria colocar em pastas diferentes?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O hash MD5 você está criando fora da função, você passa ele para dentro da função através do parâmetro $name e está usando o mesmo nome tanto para a imagem redimensionada quanto para a original.

 

Se você vai mudar o nome do arquivo ou pasta isso é você que tem que decidir.

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendi :D

consegui resolver aki:

o código:

funcao_upload.php

<?php
// faz o redimensionamento
       function Redimensionar($imagem, $name, $largura, $pasta){
               $img = imagecreatefromjpeg($imagem['tmp_name']);
               $x   = imagesx($img);
               $y   = imagesy($img);
               $altura = ($largura * $y)/$x;
               $nova = imagecreatetruecolor($largura, $altura);
               imagecopyresampled($nova, $img, 0, 0, 0, 0, $largura, $altura, $x, $y);
               imagejpeg($nova, "$pasta/$name");
               imagedestroy($img);
               imagedestroy($nova);

//era pra fazer o upload da imagem grande
		$foto2 = $_FILES['foto'];
		move_uploaded_file($foto2['tmp_name'], "imgG/".$name);
		return $name;
		}
?>

 

index.php

<?php
if(isset($_POST['acao']) && $_POST['acao'] == 'cadastrar'){
        $foto = $_FILES['foto'];
        if($foto['type'] == 'image/jpeg'){
           require("funcao/funcao_upload.php");
           $name = md5(uniqid(rand(), true)).".jpg";            
           Redimensionar($foto, $name, 150, "imgP");
        }   
     } 

?>

e fiz pastas separadas, e foi certinho :D - to tão feliz aushuahsua

tá certinho agora né?

é isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.