Ir para conteúdo

POWERED BY:

Arquivado

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

kklj

[Resolvido] erro na funcao getimagesize

Recommended Posts

alguem sabe me informar q erro é esse?

Warning: getimagesize(C:\Documents and Settings\Administrador\Configurações locais\Temp\phpAD.tmp) [function.getimagesize]: failed to open stream: No such file or directory in C:\Arquivos de programas\xxxxxxxxx\templates\upload.php on line 23

onde a linha 23 é

 

$tamanhos = getimagesize($arquivo["tmp_name"]);
isso é uma funcao para upload, o engracado q tenho essa mesma funcao rodando na mesma maquina e nao da esse erro. so q a outra nao é funcao e sim um script, eu estou passando para funcao e ta dando esse erro.

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta dando erro porque o getimagesize não está atribuido a imagem, e sim ao seu nome, você deve atribuir o getimagesize diretamente a imagem... $_FILES['imagem']...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta dando erro porque o getimagesize não está atribuido a imagem, e sim ao seu nome, você deve atribuir o getimagesize diretamente a imagem... $_FILES['imagem']...

Alaerte, estou fazendo assim, e continua com o mesmo erro.

$arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;
.
.
.
$tamanhos = getimagesize("$arquivo");

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como assim erro mano ? é só você pegar os tamanhos agora, vea:

 

<?php
$arquivo_img = 'teste.jpg';

$dimen = GetImageSize($arquivo_img); // pegamos a largura e altura e jogamos em um array.

echo $largura = $dimen[0].'<br />'; // largura

echo $altura = $dimen[1]; // altura

Compartilhar este post


Link para o post
Compartilhar em outros sites

é isso mesmo fera, nao to conseguindo colocar para funcionar, vou colocar o codigo completo

function x($foto){

  $erro = $config = array();// Prepara a variável do arquivo
  $arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE;// Tamanho máximo do arquivo (em bytes)
  $config["tamanho"] = 106883;// Largura máxima (pixels)
  $config["largura"] = 400;// Altura máxima (pixels)
  $config["altura"]  = 300;
  // Formulário postado... executa as ações
  if($arquivo){  
	// Verifica se o mime-type do arquivo é de imagem
	$x = $arquivo["name"];
	if (!empty($x)){//condicao para grava campo foto vazio
		if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"]))	{
		  $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo";
		}
		else {
			// Verifica tamanho do arquivo
			if($arquivo["size"] > $config["tamanho"]) {
				$erro[] = "Arquivo em tamanho muito grande! A imagem deve ser de no máximo " . $config["tamanho"] . " bytes. Envie outro arquivo";
			}
			
			// Para verificar as dimensões da imagem
			$tamanhos = getimagesize($arquivo["tmp_name"]); // O ERRO OCORRE NESTA LINHA
			echo $tamanho[0];
			
			// Verifica largura
			if($tamanhos[0] > $config["largura"])  {
				$erro[] = "Largura da imagem não deve ultrapassar " . $config["largura"] . " pixels";
			}
			// Verifica altura
			if($tamanhos[1] > $config["altura"])	{
				$erro[] = "Altura da imagem não deve ultrapassar " . $config["altura"] . " pixels";
			}
		}
		// Imprime as mensagens de erro
		if(sizeof($erro)){
			  foreach($erro as $err){
				echo " - " . $err . "<BR>";
			}
			echo "<a href=\"agenda.php\">Fazer Upload de Outra Imagem</a><br/>";
		}
		// Verificação de dados OK, nenhum erro ocorrido, executa então o upload...
		else{
			// Pega extensão do arquivo
			preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);
			// Gera um nome único para a imagem
			$arquivo = $_FILES['foto'];
			// Caminho de onde a imagem ficará
			$imagem_dir = "teste/" . basename($arquivo['name']);
			// Faz o upload da imagem
			move_uploaded_file($arquivo["tmp_name"], $imagem_dir);
			chmod($imagem_dir , 0777);
		}//fim de else
	}
  }//fim do se arkivo
  return ($imagem_dir);
}//fim da funcao
e depois eu chamo essa funcao, sera q esta dando erro por ser uma funcao (function x)??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz algumas alterações, troquei o nome da função, e a variável $foto de dentro da função, coloquei $arquivos, e na hora de pegar a imagem fiz isso:

 

lado_x($_FILES['foto']);

 

com relação ao getsize eu estava errado sobre pegar os tamanhos no post que fiz assima, tem que ser com getimagesize($arquivos['tmp_name'] mesmo... testa ai, agora está OK, pelo menos aqui.

 

<form name="teste" action="" method="POST" enctype="multipart/form-data">
Foto: <input type="file" name="foto">
<input type="submit" name="ok" value="Enviar">
</form>
<?php
function lado_x($arquivo){

  #$erro = $config = array();// Prepara a variável do arquivo
  #$arquivo = isset($_FILES["foto"]) ? ($arquivo=$_FILES["foto"]) : FALSE;// Tamanho máximo do arquivo (em bytes)
  $config["tamanho"] = 106883;// Largura máxima (pixels)
  $config["largura"] = 400;// Altura máxima (pixels)
  $config["altura"]  = 300;
  // Formulário postado... executa as ações
  if($arquivo){
	// Verifica se o mime-type do arquivo é de imagem
	$x = $arquivo["name"];
	if (!empty($x)){//condicao para grava campo foto vazio
		if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $arquivo["type"]))	{
		  $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo";
		}
		else {
			// Verifica tamanho do arquivo
			if($arquivo["size"] > $config["tamanho"]) {
				$erro[] = "Arquivo em tamanho muito grande! A imagem deve ser de no máximo " . $config["tamanho"] . " bytes. Envie outro arquivo";
			}

			// Para verificar as dimensões da imagem
			$tamanhos = getimagesize($arquivo['tmp_name']); // O ERRO OCORRE NESTA LINHA
			echo $tamanhos[0];

			// Verifica largura
			if($tamanhos[0] > $config["largura"])  {
				$erro[] = "Largura da imagem não deve ultrapassar " . $config["largura"] . " pixels";
			}
			// Verifica altura
			if($tamanhos[1] > $config["altura"])	{
				$erro[] = "Altura da imagem não deve ultrapassar " . $config["altura"] . " pixels";
			}
		}
		// Imprime as mensagens de erro
		if(sizeof($erro)){
			  foreach($erro as $err){
				echo " - " . $err . "<BR>";
			}
			echo "<a href=\"agenda.php\">Fazer Upload de Outra Imagem</a><br/>";
		}
		// Verificação de dados OK, nenhum erro ocorrido, executa então o upload...
		else{
			// Pega extensão do arquivo
			preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);
			// Gera um nome único para a imagem
			$arquivo = $_FILES['foto'];
			// Caminho de onde a imagem ficará
			$imagem_dir = "teste/" . basename($arquivo['name']);
			// Faz o upload da imagem
			move_uploaded_file($arquivo["tmp_name"], $imagem_dir);
			chmod($imagem_dir , 0777);
		}//fim de else
	}
  }//fim do se arkivo
  return ($imagem_dir);
}//fim da funcao


lado_x($_FILES['foto']);
?>
Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

funcionou, agora nao esta mais mostrando akela mansagem de erro mais. so q nao entendi 2 coisas, rs. uma funcao nao pode ter um nome tao currto como akele? apenas um caracter. e outra o q essa linha faz?

lado_x($_FILES['foto']);

ha desculpa pela ignorancia, é pq sou iniciante e estou usando pela primeira vez funcoes, rs.

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Percebi que você é novo.

 

isso:

lado_x($_FILES['foto']);
vai pegar a imgem vinda do formulário, como se fosse
$arquivo=$_FILES['foto']
etende ? então ele vai passar para a variável $arquivo todos os parâmetros da imagem...

 

em relação ao nome da função, pode ser daquele jeito mesmo, não tem problema, suspeitei porque com é apenas um caractere as vezes pode dar conflito com alguma outra função mais é raro.

 

Abraço.

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.