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

Imagens no banco de dados


Daniel Correia

Pergunta

olá galera estou desenvolvendo um sistema com php e MySql, e uso como servidor o vertrigo, eu tenho um codigo que salva o caminho da imagem no banco e a imagem em uma pasta chamada imagens, o nome da imagem está sendo gravada no banco, mais a imagem não estar indo para a pasta imagem no meu projeto, como resolvo esse problema, está aqui o código:

<?php

//session_start();

$conn = @mysql_connect("localhost", "root", "senha") or die ("Problemas na conexão.");

$db = @mysql_select_db("banco", $conn) or die ("Problemas na conexão");

// Prepara a vari�vel caso o formul�rio tenha sido postado

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

$config = array();

// Tamano m�ximo da imagem, em bytes

$config["tamanho"] = 1024 * 1024 * 2; //2MB //5000883

// Largura M�xima, em pixels

$config["largura"] = 650;

// Altura M�xima, em pixels

$config["altura"] = 500;

// Diret�rio onde a imagem ser� salva

$config["diretorio"] = "imagens/";

// Gera um nome para a imagem e verifica se j� n�o existe, caso exista, gera outro nome e assim sucessivamente..

// Fun��o Recursiva

function nome($extensao)

{

global $config;

// Gera um nome �nico para a imagem

$temp = substr(md5(uniqid(time())), 0, 10);

$imagem_nome = $temp . "." . $extensao;

// Verifica se o arquivo j� existe, caso positivo, chama essa fun��o novamente

if(file_exists($config["diretorio"] . $imagem_nome))

{

$imagem_nome = nome($extensao);

}

return $imagem_nome;

}

if($arquivo)

{

$erro = array();

// Verifica o mime-type do arquivo para ver se � de imagem.

// Caso fosse verificar a extens�o do nome de arquivo, o c�digo deveria ser:

//

// if(!eregi("\.(jpg|jpeg|bmp|gif|png){1}$", $arquivo["name"])) {

// $erro[] = "Arquivo em formato inv�lido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Envie outro arquivo"; }

//

// Mas, o que ocorre � que alguns usu�rios mal-intencionados, podem pegar um v�rus .exe e simplesmente mudar a extens�o

// para alguma das imagens e enviar. Ent�o, n�o adiantaria em nada verificar a extens�o do nome do arquivo.

if(!eregi("^image\/(pjpeg|jpeg|png|gif|bmp|jpg)$", $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"]);

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

}

}

if(!sizeof($erro))

{

// Pega extens�o do arquivo, o indice 1 do array conter� a extens�o

preg_match("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext);

// Gera nome �nico para a imagem

$imagem_nome = nome($ext[1]);

// Caminho de onde a imagem ficar�

$imagem_dir = $config["diretorio/"] . $imagem_nome;

// Faz o upload da imagem

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

$sql = mysql_query("INSERT INTO usuario (foto) VALUES ('".$imagem_nome."')");

//print_r($_FILES);

}

}

?>

desde já agradeço!!!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

amigo mais quando eu troco esta linha:

$imagem_dir = $config["diretorio/"] . $imagem_nome;

por essa:

$imagem_dir = $config["diretorio"] . $imagem_nome;

da esse seguinte erro:

Warning: move_uploaded_file(imagens/0d8e156c4a.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\Program Files (x86)\VertrigoServ\www\projeto\controle\imagens.php on line 90

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Users\Daniel correia\AppData\Local\Temp\phpC007.tmp' to 'imagens/0d8e156c4a.jpg' in C:\Program Files (x86)\VertrigoServ\www\projeto\controle\imagens.php on line 90

e alinha 90 é essa: move_uploaded_file($arquivo["tmp_name"], $imagem_dir);

e as vezes quando eu fecho e abro o netbeans as fotos que eu salvei aparecem dentro do projeto soltas, mais não na pata imagens.

e quando eu coloco esse comando no imagens.php aparece essa linha:

Array ( [foto] => Array ( [name] => ork.png [type] => image/png [tmp_name] => C:\Users\Daniel correia\AppData\Local\Temp\php410A.tmp [error] => 0 => 3270 ) )

o que poderia ser, Obrigado!!!

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
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...