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

Enviar Imagens Para Um Bd


caiognr

Pergunta

Eu estou construindo um site de uma imobiliaria o qual tem uma página de inserção de registros. Gostaria de saber como faço para a foto ser inserida corretamente pois eu não estou conseguindo exibi-la posteriormente, é feito o upload para o servidor porém acho que as informações que vão para o campo foto são insuficientes para localizar a foto na pasta do servidor.

Suegue o código:

  

<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
 $theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

 switch ($theType) {
   case "text":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;    
   case "long":
   case "int":
     $theValue = ($theValue != "") ? intval($theValue) : "NULL";
     break;
   case "double":
     $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
     break;
   case "date":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;
   case "defined":
     $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
     break;
 }
 return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
 $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
 $arquivo = $_FILES["foto"];
$arquivo_nome = $arquivo["name"];
$endereco = "c:\inetpub\wwwroot\perfilimoveisonline\dados";
$tudo = $endereco + $arquivo_nome; 
 $insertSQL = sprintf("INSERT INTO imoveis (codneg, cod_tipo, local_cod, Área, Condomínio, Cidade, Bairro, Dormitórios, Valor, Detalhes, foto) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, '$arquivo_nome')",
                      GetSQLValueString($_POST['codneg'], "int"),
                      GetSQLValueString($_POST['cod_tipo'], "int"),
                      GetSQLValueString($_POST['local_cod'], "int"),
                      GetSQLValueString($_POST['Área'], "text"),
                      GetSQLValueString($_POST['Condominio'], "text"),
                      GetSQLValueString($_POST['Cidade'], "text"),
                      GetSQLValueString($_POST['Bairro'], "text"),
                      GetSQLValueString($_POST['Dormitorios'], "int"),
                      GetSQLValueString($_POST['Valor'], "text"),
                      GetSQLValueString($_POST['Detalhes'], "text"));
                     
set_time_limit(0);
$diretorio = "c:\inetpub\wwwroot\perfilimoveisonline\dados";
$id_arquivo = "foto";
$nome_arquivo = $_FILES[$id_arquivo]["name"];
$arquivo_temporario = $_FILES[$id_arquivo]["tmp_name"];
move_uploaded_file($arquivo_temporario, "$diretorio/$nome_arquivo");
                      

 mysql_select_db($database_conexao, $conexao);
 $Result1 = mysql_query($insertSQL, $conexao) or die(mysql_error());

 $insertGoTo = "SUCESSO.PHP";
 if (isset($_SERVER['QUERY_STRING'])) {
   $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
   $insertGoTo .= $_SERVER['QUERY_STRING'];
 }
 header(sprintf("Location: %s", $insertGoTo));
}
?>

especificamente:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
 $arquivo = $_FILES["foto"];
$arquivo_nome = $arquivo["name"];
$endereco = "c:\inetpub\wwwroot\perfilimoveisonline\dados";
$tudo = $endereco + $arquivo_nome; 
 $insertSQL = sprintf("INSERT INTO imoveis (codneg, cod_tipo, local_cod, Área, Condomínio, Cidade, Bairro, Dormitórios, Valor, Detalhes, foto) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, '$arquivo_nome')",
                      GetSQLValueString($_POST['codneg'], "int"),
                      GetSQLValueString($_POST['cod_tipo'], "int"),
                      GetSQLValueString($_POST['local_cod'], "int"),
                      GetSQLValueString($_POST['Área'], "text"),
                      GetSQLValueString($_POST['Condominio'], "text"),
                      GetSQLValueString($_POST['Cidade'], "text"),
                      GetSQLValueString($_POST['Bairro'], "text"),
                      GetSQLValueString($_POST['Dormitorios'], "int"),
                      GetSQLValueString($_POST['Valor'], "text"),
                      GetSQLValueString($_POST['Detalhes'], "text"));
                     
set_time_limit(0);
$diretorio = "c:\inetpub\wwwroot\perfilimoveisonline\dados";
$id_arquivo = "foto";
$nome_arquivo = $_FILES[$id_arquivo]["name"];
$arquivo_temporario = $_FILES[$id_arquivo]["tmp_name"];
move_uploaded_file($arquivo_temporario, "$diretorio/$nome_arquivo");
                      

 mysql_select_db($database_conexao, $conexao);
 $Result1 = mysql_query($insertSQL, $conexao) or die(mysql_error());

 $insertGoTo = "SUCESSO.PHP";
 if (isset($_SERVER['QUERY_STRING'])) {
   $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
   $insertGoTo .= $_SERVER['QUERY_STRING'];
 }
 header(sprintf("Location: %s", $insertGoTo));
} 



Valeu!

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Eu utilzo este.

<?
include("conexao.php");
$pess = $_GET['pess'];
$destaques = $_GET['destaques'];
echo "<center><h2>Envio do Destaque: <b>$nome_de</b> para o Associado ou Cliente: <b>$nome_cliente</b>.</h2></center>";
// 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"] = 48000;
// Largura Máxima, em pixels
$config["largura"] = 350;
// Altura Máxima, em pixels
$config["altura"] = 350;
// Diretório onde a imagem será salva
$config["diretorio"] = "../fotos/";
// 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)$", $arquivo["type"])){
  $erro[] = "Arquivo em formato inválido! A imagem deve ser jpg, 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);
	$pess = $HTTP_POST_VARS["pess"];
	$destaques = $HTTP_POST_VARS["destaques"];
	$caminho_foto = $imagem_nome;
	$data = "$ano-$mes-$dia";
	$alterar = mysql_query("INSERT INTO pess_destq (id_pess, id_de, descricao, data, dtvalidade) VALUES ('$pess', '$destaques', 'fotos/$caminho_foto', now(), '$data')") or die(mysql_error());
	}
}
?>
<html>
<head>
<title>:: Destaque: <? echo $nome_de; ?>, para o Associado ou Cliente: <? echo $nome_cliente; ?> ::</title>
<link href='../funcoes/estilo.css' rel='stylesheet' type='text/css'>
</head>
<body>
<center><BR>
<?
// Imagem foi enviada com sucesso, mostra mensagem de SUCESSO
if($arquivo && !sizeof($erro)){	
	echo "<img src=\"" . $imagem_dir . "\" border=0>";
	echo "<script> alert('Seu Destaque: $nome_de, foi gravado com sucesso !!!');";
	echo "document.location.href = \"pessoa_fisica.php\";";
	echo "</script>";  
	//echo "<a href=javascript:;window.close()><center>Fechar janela</font></a>";
}/* Ocorreu algum erro ou ainda o formulário não foi postado*/ else {
?>
<form action="<?echo $PHP_SELF?>" method="post"  ENCTYPE="multipart/form-data">
  <div align="center">Envie sua foto em formato gif, jpg ou png.<BR>
    A imagem não deve ter mais que <? echo $config["tamanho"] ?> bytes e deve ter <? echo $config["largura"] . "x" . $config["altura"] ?> pixels.<BR>
  </div>
  <input name="pess" type="hidden" id="pess" value="<?=$pess?>">
  <input name="destaques" type="hidden" id="destaques" value="<?=$destaques?>">
  <table border=0 cellpadding=2 cellspacing=1 align=center>
<?
if(sizeof($erro)){
	echo "<tr><td colspan=2 bgcolor=red><B><U>Ocorreu(am) o(s) seguinte(s) erro(s):</u><BR>";
	foreach($erro as $err){
  echo " - " . $err . "<BR>";
  echo "<a href=javascript:;history.go(-1)><center><font color=#ffffff>Tente de novo</font></center></a>";
  exit;
	}
	echo "</B></td></tr>";
}
?>
<tr><td align=center>Enviar Foto: <input name=foto type=file class="botao" size=30></td></tr>
<input type="hidden" name="cod_prod" value="<?php echo $cod_prod?>">
<tr><td align=center>&nbsp;</td></tr>
<tr>
  <td align=center><table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td>Data de Validade </td>
      <td>
   <select name="dia" class="campo" id="dia">
     <option value="0">DIA</option>
     <option value="01">01</option>
     <option value="02">02</option>
     <option value="03">03</option>
     <option value="04">04</option>
     <option value="05">05</option>
     <option value="06">06</option>
     <option value="07">07</option>
     <option value="08">08</option>
     <option value="09">09</option>
     <option value="10">10</option>
     <option value="11">11</option>
     <option value="12">12</option>
     <option value="13">13</option>
     <option value="14">14</option>
     <option value="15">15</option>
     <option value="16">16</option>
     <option value="17">17</option>
     <option value="18">18</option>
     <option value="19">19</option>
     <option value="20">20</option>
     <option value="21">21</option>
     <option value="22">22</option>
     <option value="23">23</option>
     <option value="24">24</option>
     <option value="25">25</option>
     <option value="26">26</option>
     <option value="27">27</option>
     <option value="28">28</option>
     <option value="29">29</option>
     <option value="30">30</option>
     <option value="31">31</option>
      </select>
        /
        <select name="mes" class="campo" id="mes">
  	<option value="0">MÊS</option>
     <option value="01">01</option>
     <option value="02">02</option>
     <option value="03">03</option>
     <option value="04">04</option>
     <option value="05">05</option>
     <option value="06">06</option>
     <option value="07">07</option>
     <option value="08">08</option>
     <option value="09">09</option>
     <option value="10">10</option>
     <option value="11">11</option>
     <option value="12">12</option>  
        </select>
        /
        <select name="ano" class="campo" id="ano">
          <option value="0">ANO</option>
          <option value="2005">2005</option>
          <option value="2006">2006</option>
          <option value="2007">2007</option>
          <option value="2008">2008</option>
          <option value="2009">2009</option>
          <option value="2010">2010</option>
          <option value="2011">2011</option>
          <option value="2012">2012</option>
          <option value="2013">2013</option>
          <option value="2014">2014</option>
          <option value="2015">2015</option>
        </select></td>
    </tr>
  </table></td>
</tr>
<tr>
  <td align=center>&nbsp;</td>
</tr>
<tr>
  <td align=center><input type=submit class="botao" value="Ok!"></td>
</tr>
</table>
</form>
<?
}
?>
<br>
</body>
</html>

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...