lucas05 Postado Outubro 16, 2008 Denunciar Share Postado Outubro 16, 2008 pessoal seguinte to com um sistema de upload de foto e ta dando esse erroFatal error: Function name must be a string in C:\AppServ\www\foto.php on line 134a linha 134 é $img_origem = $ext( $arquivo['tmp_name'] ); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 AmareshinO Postado Outubro 16, 2008 Denunciar Share Postado Outubro 16, 2008 (editado) cara, axo que esse erro ta acontecendo pelo seguinte:$img_origem = $ext( $arquivo['tmp_name'] );esse $ext( **** ) é uma função e o php não esta aceitando a string $arquivo['tml_name'] tenta tirar os ' de dentro do $arquivo, teste com ele assim:$img_origem = $ext($arquivo[tmp_name]); ou assim: $img_origem = $ext("$arquivo[tmp_name]"); Editado Outubro 16, 2008 por AmareshinO Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Outubro 16, 2008 Denunciar Share Postado Outubro 16, 2008 Não... conforme o erro: Fatal error: Function name must be a stringO nome da função $ext tem que ser uma string... No caso $ext é uma variável... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lucas05 Postado Outubro 16, 2008 Autor Denunciar Share Postado Outubro 16, 2008 (editado) $arquivo = $_FILES['foto']; if ( eregi( "^image\\/(pjpeg|jpeg|png|gif|bmp)\$", $arquivo['type'] ) ) { if ( $arquivo['type'] == "image/pjpeg" || $arquivo['type'] == "image/jpg" ) { $ext = "ImageCreateFromJPEG"; $ext1 = "jpg"; } else if ( $arquivo['type'] == "image/png" ) { $ext = "ImageCreateFromPNG"; $ext1 = "png"; } else if ( $arquivo['type'] == "image/gif" ) { $ext = "ImageCreateFromGIF"; $ext1 = "gif"; } else if ( $arquivo['type'] == "image/bmp" ) { $ext = "ImageCreateFromBMP"; $ext1 = "bmp"; } $img_origem = $ext($arquivo[tmp_name]); $origem_x = imagesx( $img_origem ); $origem_y = imagesy( $img_origem ); $imagem_nome = "{$char}".".".$ext1; echo $imagem_nome; $linkfoto = "{$imagem_nome}"; $config['diretorio'] = "avatar/"; $imagem_dir = $config['diretorio'].$imagem_nome; mssql_query( "INSERT INTO avatar (login,foto,char,data) VALUES ('".$login."','{$imagem_nome}','{$char}',getdate())" ); if ( $origem_x < $origem_y ) { $maxx = 90; $maxy = 120; } if ( $origem_y < $origem_x ) { $maxx = 120; $maxy = 90; } if ( $maxx < $origem_x ) { $x = $maxx; } else { $x = $origem_x; } if ( $maxy < $origem_y ) { $y = $maxy; } else { $y = $origem_y; } $img_final = ImageCreateTrueColor($x,$y); ImageCopyResampled($img_final, $img_origem, 0, 0, 0, 0, $x, $y, $origem_x, $origem_y); $branco = ImageColorAllocate($img_final, 255, 255, 255); ImageJPEG($img_final,$config["diretorio"] . $imagem_nome,100);o q eu teria q fazer ai pra funcionar normal o codigo ? Editado Outubro 16, 2008 por lucas05 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 JMCoimbra Postado Agosto 22, 2011 Denunciar Share Postado Agosto 22, 2011 Olá, eu acho que o que você queria inicialmente era tratar a variável $ext como um array: $img_origem = $ext[$arquivo["tmp_name"]];Agora olhando o contexto de seu código não dá para saber se ele vai funcionar somente consertando essa linha.Respondi a essa mensagem porque tive o mesmo problema relacionado no título da thread. :rolleyes: $arquivo = $_FILES['foto]; if ( eregi( "^image\\/(pjpeg|jpeg|png|gif|bmp)\$", $arquivo['type'] ) ) { if ( $arquivo['type'] == "image/pjpeg" || $arquivo['type'] == "image/jpg" ) { $ext = "ImageCreateFromJPEG"; $ext1 = "jpg"; } else if ( $arquivo['type'] == "image/png" ) { $ext = "ImageCreateFromPNG"; $ext1 = "png"; } else if ( $arquivo['type'] == "image/gif" ) { $ext = "ImageCreateFromGIF"; $ext1 = "gif"; } else if ( $arquivo['type'] == "image/bmp" ) { $ext = "ImageCreateFromBMP"; $ext1 = "bmp"; } $img_origem = $ext($arquivo[tmp_name]); $origem_x = imagesx( $img_origem ); $origem_y = imagesy( $img_origem ); $imagem_nome = "{$char}".".".$ext1; echo $imagem_nome; $linkfoto = "{$imagem_nome}"; $config['diretorio'] = "avatar/"; $imagem_dir = $config['diretorio'].$imagem_nome; mssql_query( "INSERT INTO avatar (login,foto,char,data) VALUES ('".$login."','{$imagem_nome}','{$char}',getdate())" ); if ( $origem_x < $origem_y ) { $maxx = 90; $maxy = 120; } if ( $origem_y < $origem_x ) { $maxx = 120; $maxy = 90; } if ( $maxx < $origem_x ) { $x = $maxx; } else { $x = $origem_x; } if ( $maxy < $origem_y ) { $y = $maxy; } else { $y = $origem_y; } $img_final = ImageCreateTrueColor($x,$y); ImageCopyResampled($img_final, $img_origem, 0, 0, 0, 0, $x, $y, $origem_x, $origem_y); $branco = ImageColorAllocate($img_final, 255, 255, 255); ImageJPEG($img_final,$config["diretorio"] . $imagem_nome,100);o q eu teria q fazer ai pra funcionar normal o codigo ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Willian Gustavo Veiga Postado Agosto 23, 2011 Denunciar Share Postado Agosto 23, 2011 O código abaixo executa perfeitamente:<?php function a($b) { echo $b; } $a = 'a'; $a('b'); ?>Acredito que o problema esteja no valor de $ext. Provavelmente seja null ou contém um valor inválido para o nome de uma função (não tenho certeza se essa ultima afirmação é verdadeira).Um abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
lucas05
pessoal seguinte to com um sistema de upload de foto e ta dando esse erro
Fatal error: Function name must be a string in C:\AppServ\www\foto.php on line 134
a linha 134 é
$img_origem = $ext( $arquivo['tmp_name'] );
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
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.