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

(Resolvido) Gravar imagem na bd


pm79

Pergunta

Olá a todos

Estou com um problema para conseguir gravar o nome de uma imagem na bd

Tenho um formulário onde faço o envio

<form method="POST" enctype="multipart/form-data" action="adic-imagem1.php"><table width="750" height="176" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td height="26" colspan="3" bgcolor="#666666"><div align="left"><span class="style5">
    <ul>
      Adicionar
    Imagem &agrave; galeria 
    </ul> 
    </span></div></td>
  </tr>
  <tr>
    <td width="16%" height="50" valign="middle"><ul>
        <span class="style4">
          <li>Categoria</li>
        </span>
    </ul></td>
    <td width="81%" height="50" valign="middle"><label>
      <select name="categoria" size="1" id="categoria">
        <option value="economico cer">Econ&oacute;mico Cer</option>
        <option value="moderno home">Moderno Home</option>
        <option value="moderno house">Moderno House</option>
        <option value="moderno lotus">Moderno Lotus</option>
        <option value="rustico roma">R&uacute;stico Roma</option>
        <option value="rustico veneza">R&uacute;stico Veneza</option>
      </select>
      </label></td>
    <td width="3%" height="50">&nbsp;</td>
  </tr>
  <tr>
    <td height="50" valign="middle"><ul>
        <span class="style4">
        <li>Tipo</li>
          </span>
    </ul></td>
    <td height="50" valign="middle"><label>
      <select name="tipo" id="tipo">
        <option value="entrada">Entrada</option>
        <option value="escritorio">Escrit&oacute;rio</option>
        <option value="estantes">Estantes</option>
        <option value="quarto">Quarto</option>
        <option value="sala">Sala</option>
        <option value="vitrines">Vitrines</option>
      </select>
      </label></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td height="11"><span class="style4">
      <ul>
          <li>Descri&ccedil;&atilde;o</li>
    </ul>
    </span></td>
    <td height="25" valign="middle">
  <input type="file" name="arquivo"></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td height="5">&nbsp;</td>
    <td height="12"><input name="submit" type="submit" value="Adicionar registo"></td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td height="13" colspan="3"><div align="center">
      <?php
include ('../menu.html');
?>
    </div></td>
  </tr>
</table>
</form>
aqui criei a pagina para receber os dados
<?php
require_once "class_upload.php";

$upload = new Upload();
$upload->Envia_Arquivo();

include '../ligacao.php';


    
$ligacao or die ("Problema na ligação ao servidor MySQL");
$sql = "insert into imagem (imagem,thumb,categoria,tipo) values ('"$nome_foto"','"$nome_thumb"','".$_REQUEST['categoria']."','".$_REQUEST['tipo']."')";
$resultado = mysql_db_query("macro_sistema",$sql);
$reg_ins=mysql_affected_rows();
echo "A sua imagem foi enviada com sucesso<p>";


include ('../menu.html');
?>
esse ficheiro acima chama a classe (O codigo da classe é da autoria de Fabio Guimaraes)
<?
set_time_limit(0);
include "funcoes.php";
class Upload
{
    var $arquivo = "";
    var $erro = array ( "0" => "upload execultado com sucesso!",
                        "1" => "O arquivo é maior que o permitido pelo Servidor",
                        "2" => "O arquivo é maior que o permitido pelo formulario",
                        "3" => "O upload do arquivo foi feito parcialmente",    
                        "4" => "Não foi feito o upload do arquivo"
                       );
        
    function Verifica_Upload()
    {
        $this->arquivo = isset($_FILES['arquivo']) ? $_FILES['arquivo'] : FALSE;
        if(!is_uploaded_file($this->arquivo['tmp_name'])) {
            return false;
        }    
        $get = getimagesize($this->arquivo['tmp_name']);
        
        if($get["mime"] != "image/jpeg")
        {    
            echo "<span style=\"color: white; border: solid 1px; background: red;\">Essa foto não é uma imagem válida</span>";
            exit;
        }
        return true;
    }

    function Envia_Arquivo()
    {
        if($this->Verifica_Upload()) {
            $this->gera_fotos();
            return true;        
        } else {
            echo "<span style=\"color: white; border: solid 1px; background: red;\">".$this->erro[$this->arquivo['error']]."</span>";
        }
    }
    
    function gera_fotos()
    {
        $diretorio = "fotos/";
        if(!file_exists($diretorio))
        {
            mkdir($diretorio);
        }
        
        $nome_foto  = "imagem_".time().".jpg";        
        $nome_thumb = "thumb_".time().".jpg";
      
                //determino uma resolução maxima e se a imagem for maior ela sera reduzida
        reduz_imagem($this->arquivo['tmp_name'], 980, 360, $diretorio.$nome_foto);         
                //passo o tamanho da thumbnail
        reduz_imagem($this->arquivo['tmp_name'], 120, 90, $diretorio.$nome_thumb);
        echo "<span style=\"color: white; border: solid 1px; background: blue;\">".$this->erro[$this->arquivo['error']]."</span>";
    }    
}


?>

O envio da imagem funciona na perfeição mas, não consigo gravar o nome da imagem na bd .

Será que me pode ajudar?

Agradeço a ajuda que me possam dar

Obrigado

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

acabei por resolver este problema fazendo a gravação dos dados no

class_upload.php

reduz_imagem($this->arquivo['tmp_name'], 120, 90, $diretorio.$nome_thumb);
        echo "<span style=\"color: white; border: solid 1px; background: blue;\">A imagem foi dicionada com sucesso tento como nome no sistema $nome_foto</span>";
        include '../ligacao.php';
        $ligacao or die ("Problema na ligação ao servidor MySQL");
$sql = "insert into imagem (imagem,thumb,categoria,tipo) values ('$nome_foto','$nome_thumb','".$_REQUEST['categoria']."','".$_REQUEST['tipo']."')";
$resultado = mysql_db_query("macro_sistema",$sql);
$reg_ins=mysql_affected_rows();

Obrigado pela ajuda

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