Ir para conteúdo
Fórum Script Brasil
  • 0

Script-ajuda: Upload De Imagem C/ 4 Restrições.


nknk

Pergunta

Script-Ajuda: Upload de Imagem c/ 4 restrições. e Renomeia e Codifica

Oi,

Preciso que alguém me ajude a encontrar os erros desse código que pode servir para muita gente. Eu fiz com base em outros códigos e artigos.

O que ele faz ? Upload da foto, se não tiver a foto ele envia um caminho para a tabela, o caminho é de uma foto escrita sem foto, se tiver foto ele renomeia colocando data, hora, ip e codifica em md5 e verifica o tipo/tamanho/dimensões da foto, inserindo na tabela.

$file = $_FILES['file'];

$data = date("dmY");

$hora = date("His");

$ip=$_SERVER['REMOTE_ADDR'];

$usip = $ip; //Guarda em usip

$erro = $config = array();

$file = isset($_FILES["file"]) ? $_FILES["file"] : FALSE;

// Tamanho máximo do arquivo (em bytes)

$config["tamanhomax"] = 10240000000;

$config["tamanhomin"] = 16000;

// Largura máxima (pixels)

$config["largura"] = 640;

// Altura máxima (pixels)

$config["altura"] = 400;

if($file['name'] != ""){ //verificando se o campo foto foi preenchido. se foi, irá fazer o upload

if($file){

// Verifica se o mime-type do arquivo é de imagem

if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp)$", $file["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($file["size"] > $config["tamanhomax"])

{ $erro[] = "Arquivo em tamanho muito grande! A imagem deve ser de no máximo " . $config["tamanho"] . " bytes. Envie outro arquivo"; }

if($file["size"] < $config["tamanhomin"])

{ $erro[] = "Arquivo em tamanho muito pequeno! A imagem deve ser de no minimo " . $config["tamanho"] . " bytes. Envie outro arquivo"; }

// Para verificar as dimensões da imagem

$tamanhos = getimagesize($file["tmp_name"]);

// 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>"; }

}

// 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", $file["name"], $ext);

$imagem_nome = $data."_".$hora."_".$usip."_".$imagem_nome;

// Gera um nome único para a imagem

$imagem_nome = md5(uniqid(time())) . "." . $ext[1];

// Caminho de onde a imagem ficará

$imagem_dir = "imagem/" . $imagem_nome;

// Faz o upload da imagem

move_uploaded_file($file["tmp_name"], $imagem_dir);

echo "Sua foto foi enviada com sucesso!";

}

}

else{ //se o campo não foi preenchido, ele definirá o caminho.

$semfoto = "imagem/semimagem.jpg";

mysql_query("INSERT INTO catalogo (imagem) VALUES ('$semfoto')");

}

:D

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Gutto, eu não conseguindo verificar os erros porque instalei um captcha no formulário e quando clico em enviar preenchendo todas as restrições, ele volta para o formulário, não sei se é por causa dessa linha action="<?php echo $_SERVER['enviar.php'];?>" ou essa session_start();

(o meu formulário está dentro de um sistema de login, é necessário declarar duas vezes session_start() para o captcha ?)

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...