Jump to content


Photo

Extensões Imagem Upload


  • Faça o login para participar
4 replies to this topic

#1 cwbdesign

cwbdesign

    Novato no fórum

  • Usuários
  • 23 posts
  • Sexo:Masculino
  • Localidade:Curitiba

Posted 09/04/2010, 16:13

Olá, esqueci meu email e login e acabei fazendo outro usuário hehe
Mas bem, tenho a script de Upload, agora só queria saber como restringir o tamanho da altura e largura da imagem enviada,

exemplo, em largura uns 300px e altura nao pode passar de 47px.

Abaixo o código utilizado:
// Prepara a variável do arquivo
$arquivo = isset($_FILES["logo"]) ? $_FILES["logo"]: FALSE;

	// Tamanho máximo do arquivo (em bytes)
	$config["tamanho"] = 15360;
	
	// Formulário postado... executa as ações
	if($arquivo['tmp_name'] != "")
	{  
		// Verifica se o mime-type do arquivo é de imagem
		if(!eregi("^image\/(pjpeg|jpeg|png|gif)$", $arquivo["type"]))
		{
			echo '<script> history.go(-1); alert("Por favor, somente arquivos nas extensões .jpg, .jpeg, .png ou .gif. Verifique se seu arquivo está numa dessas extensões.");</script>'; die();
		}
		else
		{
			// Verifica tamanho do arquivo
			if($arquivo["size"] > $config["tamanho"])
			{
				echo "<script>alert('O ser arquivo tem que ser no máximo 15B.'); location:'?i=dados';</script>"; die();
			}
			
	
			// Pega extensão do arquivo
			preg_match("/\.(gif|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);
			
			// Gera um nome único para a imagem
			$imagem_nome = $_FILES['logo']['name'];
	
			// Caminho de onde a imagem ficará
			$imagem_dir = "img_logo/" . $imagem_nome;
	
			// Faz o upload da imagem
			move_uploaded_file($arquivo["tmp_name"], $imagem_dir);
	
		}

Obrigado
Cezar Luiz
e - cezarluiz.cwb@gmail.com
b - Blog

Posted Image

#2 Cristiano Galdino

Cristiano Galdino

    Dark Defender

  • Administradores
  • 3738 posts
  • Sexo:Masculino
  • Localidade:Brasília, DF

Posted 09/04/2010, 16:18

Use as funções ImagesX() e ImagesY().

http://php.net/manua...ion.imagesx.php
http://php.net/manua...ion.imagesy.php

Basta medir o tamanho de $arquivo["tmp_name"] depois de verificar se realmente é uma imagem.
Cristiano Galdino
- http://cristiano.galdino.net/

“Since 2003”


#3 cwbdesign

cwbdesign

    Novato no fórum

  • Usuários
  • 23 posts
  • Sexo:Masculino
  • Localidade:Curitiba

Posted 09/04/2010, 16:38

Entendi, fui fazer a verificação de altura, coloquei assim:

$config["largura"] = imagesx($arquivo["tmp_name"]);
$config["altura"] = imagesy($arquivo["tmp_name"]);

Mas quando vou fazer a verificação me da o aviso:
Warning: imagesx(): supplied argument is not a valid Image resource in C:\AppServ\www\plat_interactive\editar_dados.php on line 37

Warning: imagesy(): supplied argument is not a valid Image resource in C:\AppServ\www\plat_interactive\editar_dados.php on line 38

Fiz a verificação bem rápida:
{if($config["altura"] > 47){ echo "Maior"; die(); } }

Cezar Luiz
e - cezarluiz.cwb@gmail.com
b - Blog

Posted Image

#4 digo

digo

    24 Horas

  • Usuários
  • 435 posts
  • Sexo:Masculino

Posted 09/04/2010, 17:00


$criar = imagecreatefromjpeg($arquivo);

// largura
$largura_da_imagem = imagesx($criar);

// altura
$altura_da_imagem = imagesy($criar);


[]'s

#5 cwbdesign

cwbdesign

    Novato no fórum

  • Usuários
  • 23 posts
  • Sexo:Masculino
  • Localidade:Curitiba

Posted 09/04/2010, 17:15

Vendo a dica de vocês e pesquisando no google tive a solução:
// Para verificar as dimensões da imagem
        	$tamanhos = getimagesize($arquivo["tmp_name"]);
        
        	// Verifica largura
        	if($tamanhos[0] > $config["largura"])
        	{
            	echo "<script>history.go(-1); alert('A largura do arquivo tem que ser no máximo 300 pixels.');</script>"; die();
        	}

        	// Verifica altura
        	if($tamanhos[1] > $config["altura"])
        	{
            	echo "<script>alert('A altura do arquivo tem que ser no máximo 47 pixels.'); location:'?i=dados';</script>"; die();
        	}

Obrigado a TODOS!

Edição feita por: cwbdesign, 09/04/2010, 17:16.

Cezar Luiz
e - cezarluiz.cwb@gmail.com
b - Blog

Posted Image




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq