JapahReturN 0 Denunciar post Postado Setembro 13, 2017 Esta dando erro nestas duas linhas: Undefined variable post na linha 28 Undefined variable post na linha 13 Qual o problema pessoal? obrg.. <?php function Image($post, $maxWidth, $maxHeight, $folder){ function salvar(){ $extensao = getExtensao($post); date_default_timezone_set('America/Sao_Paulo'); //gera nome horaminutosegundodiamesano $novo_nome = date("His") . date("dmy") . "." . $extensao; $destino = $folder . $novo_nome; //localizacao do arquivo, ex: uploads/034308130917.jpeg if ( !move_uploaded_file($post['tmp_name'], $destino) ){ //move o arquivo if ($post['error'] == 1) return "Tamanho excede o permitido"; else return "Erro " . $post['error']; } if (ehImagem($extensao)){ list($maxWidth, $maxHeight, $tipo, $atributo) = getimagesize($destino); //list transforma variavel em array ... getimagesize = pega os tamanhos de uma imagem if(($maxWidth > $maxWidth) || ($maxHeight > $maxHeight)) //testa se é preciso redimensionar a imagem caso seja maior que o maximo permitido.. redimensionar($maxWidth, $maxHeight, $tipo, $destino); } return "Sucesso"; } function getExtensao(){ //retorna a extensao da imagem $tmp = explode('.', $post['name']); $extensao = strtolower(end($tmp)); return $extensao; } function ehImagem($extensao){ $extensoes = array('gif', 'jpeg', 'jpg', 'png'); // extensoes permitidas if (in_array($extensao, $extensoes)) return true; } function redimensionar($imgLarg, $imgAlt, $tipo, $img_localizacao){ //largura, altura, tipo, localizacao dados da imagem ORIGINAL tmp if( $imgLarg > $imgAlt ){ //descobrir se é horizontal ou vertical.. para redimencionar sem perder proporção $novaLarg = $maxWidth; $novaAlt = round( ($novaLarg / $imgLarg) * $imgAlt ); } elseif ( $imgAlt > $imgLarg ){ $novaAlt = $maxHeight; $novaLarg = round( ($novaAlt / $imgAlt) * $imgLarg ); } else // altura == largura; imagem quadrada $novaAltura = $novaLargura = max($maxWidth, $maxHeight); $novaimagem = imagecreatetruecolor($novaLarg, $novaAlt); //cria uma nova imagem redimencionada switch ($tipo){ case 1: // gif $origem = imagecreatefromgif($img_localizacao); imagecopyresampled($novaimagem, $origem, 0, 0, 0, 0, $novaLarg, $novaAlt, $imgLarg, $imgAlt); imagegif($novaimagem, $img_localizacao); break; case 2: // jpeg $origem = imagecreatefromjpeg($img_localizacao); imagecopyresampled($novaimagem, $origem, 0, 0, 0, 0, $novaLarg, $novaAlt, $imgLarg, $imgAlt); imagejpeg($novaimagem, $img_localizacao); break; case 3: // png $origem = imagecreatefrompng($img_localizacao); imagecopyresampled($novaimagem, $origem, 0, 0, 0, 0, $novaLarg, $novaAlt, $imgLarg, $imgAlt); imagepng($novaimagem, $img_localizacao); break; } //libera a memória das imagens criadas imagedestroy($novaimagem); imagedestroy($origem); } } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Upload de Imagem</title> </head> <body> <form method='post' enctype='multipart/form-data'><br> <input type='file' id="image" name='image' value='Cadastrar foto'> <input type='submit' name='enviar'> </form> <?php include "_appadmin/ajax/funcImage.php"; if ( (isset($_POST['enviar'])) && (!empty($_FILES['image'])) ) { Image($_FILES['image'], 1680, 1000, "fotos/"); echo salvar(); } ?> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Setembro 13, 2017 Isso aqui não faz sentido: <?php .... function redimensionar($imgLarg, $imgAlt, $tipo, $img_localizacao){ //descobrir novo tamanho sem perder a proporcao if ( $imgLarg > $imgAlt ){ $novaLarg = $this->maxWidth; ..... Repare que a função 'redimensionar' por nenhum momento recebe o parâmetro: maxWidth. E como não é um método, não existe o escopo do $this. Ao utilizar funções não se pode usar o $this. Recomendo a leitura de como criar uma função: https://secure.php.net/manual/pt_BR/functions.arguments.php e um pouco sobre O.O. já que ocorre a necessidade de trasnformar O.O. -> Estruturado. http://php.net/manual/pt_BR/language.oop5.basic.php Compartilhar este post Link para o post Compartilhar em outros sites
JapahReturN 0 Denunciar post Postado Setembro 13, 2017 Corrigi brother mais continua dando erro nas linhas 28 e 13 falando que as variáveis não existe... Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Setembro 13, 2017 Se você apenas retirou o $this vai continuar dando erro. (variavel não existe). Você precisa passar ela por parâmetro brother. Chegou a ler? https://secure.php.net/manual/pt_BR/functions.arguments.php Compartilhar este post Link para o post Compartilhar em outros sites
JapahReturN 0 Denunciar post Postado Setembro 13, 2017 aff, li e continuo sem entender... como ficaria o código? é tão difícil assim? Compartilhar este post Link para o post Compartilhar em outros sites