fabiossmn 1 Denunciar post Postado Abril 4, 2011 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
Leozitho 81 Denunciar post Postado Abril 4, 2011 Note que você está dando um return na sua função: return $name; Logo, o que estiver depois disso em sua função será desconsiderado. ;) Compartilhar este post Link para o post Compartilhar em outros sites
fabiossmn 1 Denunciar post Postado Abril 4, 2011 :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
Leozitho 81 Denunciar post Postado Abril 4, 2011 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
fabiossmn 1 Denunciar post Postado Abril 4, 2011 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
Leozitho 81 Denunciar post Postado Abril 4, 2011 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
fabiossmn 1 Denunciar post Postado Abril 4, 2011 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