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
Pergunta
Daniel Correia
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
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.