Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Adilson1987

upload, seguido de imagem setada no lugar onde foi feito o upload da imagem pro bd.

Recommended Posts

Como setar a imagem do upload da imagem sempre que o usuário logar, no momento só consigo enviar para o bd, gostaria que depois de enviado pro banco ele ficasse setado onde fica a imagem, alguém pode me ajudar .

 

segue meu código:

 

<?php
    require_once('db.class.php');  #CLASS DE CONEXÃO COM BANCO DE DADOS
    $objDb = new db();
    $link = $objDb->conecta_mysql();
  //$con = @mysql_connect("localhost", "nome_usario_db", "senha_db") or die("Não foi possível conectar com o servidor de dados!");
  $con = mysqli_connect("localhost", "root", "")or die("Não foi possível conectar com o servidor de dados!");

  mysqli_select_db( $con, "app_agua") or die("Banco de dados não localizado!");
  /*
    CREATE TABLE uploadOnServer;
    USE uploadOnServer;
    CREATE TABLE PRODUTO(
      PRODUT_ID INT PRIMARY KEY AUTO_INCREMENT,
        PRODUT_IMAGEM VARCHAR(280),
    );
    
  */
    
  if(@$_GET['go'] == 'upload'){
    $resposta_server = false;
    if (isset($_FILES['imagem'])) {
      
      $extensao = substr($_FILES['imagem']['name'], -4);
      $novo_nomeIMG = md5(time()) . $extensao;
      $diretorio = "upload/"; #CRIAR UMA PASTA CHAMADA >>> upload
      move_uploaded_file($_FILES['imagem']['tmp_name'], $diretorio.$novo_nomeIMG);
      $sql_code = "INSERT INTO uploadonserver (PRODUT_IMAGEM) VALUES ('$novo_nomeIMG')";

      if(mysqli_query( $link, $sql_code)){
        $resposta_server = "UPLOAD OK";
        
        echo "<meta http-equiv='refresh' content='0, url=./upload.php'>";

      }else{
        $resposta_server = "UPLOAD FAIL";
      }
    }
    
  } 
  
?>

    <form action="?go=upload" method="POST" enctype="multipart/form-data" align="center"> 
     
      <img   id="preview"  width="106" height="122" /><br/>
      <div align="center">
      Arquivo:<input  type="file" name="imagem" onchange="document.getElementById('preview').src = window.URL.createObjectURL(this.files[0])" align="center" >
</div><br/>
      <input type="submit" name="Salvar">
    </form>


 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Está um pouco complicado de entender o que você quer. Por favor, explique melhor qual a sua dúvida/problema.

 

Tenha em mente a Orientação nº 1:

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gabriel, eu tenho um input do tipo file que recebe uma foto do usuário que vai para o bando de dados, até aí blz. 

O problema é que quando insiro a foto no banco de dados a mesma da um refresh e some do inPUT(FILE), gostaria que a mesma se mantenha estática na tela vinculada ao usuário

<?php
    require_once('db.class.php');  #CLASS DE CONEXÃO COM BANCO DE DADOS
    $objDb = new db();
    $link = $objDb->conecta_mysql();
  //$con = @mysql_connect("localhost", "nome_usario_db", "senha_db") or die("Não foi possível conectar com o servidor de dados!");
  $con = mysqli_connect("localhost", "root", "")or die("Não foi possível conectar com o servidor de dados!");

  mysqli_select_db( $con, "app_agua") or die("Banco de dados não localizado!");
  /*
    CREATE TABLE uploadOnServer;
    USE uploadOnServer;
    CREATE TABLE PRODUTO(
      PRODUT_ID INT PRIMARY KEY AUTO_INCREMENT,
        PRODUT_IMAGEM VARCHAR(280),
    );
    
  */
    
  if(@$_GET['go'] == 'upload'){
    $resposta_server = false;
    if (isset($_FILES['imagem'])) {
      
      $extensao = substr($_FILES['imagem']['name'], -4);
      $novo_nomeIMG = md5(time()) . $extensao;
      $diretorio = "upload/"; #CRIAR UMA PASTA CHAMADA >>> upload
      move_uploaded_file($_FILES['imagem']['tmp_name'], $diretorio.$novo_nomeIMG);
      $sql_code = "INSERT INTO uploadonserver (PRODUT_IMAGEM) VALUES ('$novo_nomeIMG')";

      if(mysqli_query( $link, $sql_code)){
        $resposta_server = "UPLOAD OK";
        
        echo "<meta http-equiv='refresh' content='0, url=./upload.php'>";

      }else{
        $resposta_server = "UPLOAD FAIL";
      }
    }
    
  } 
  
?>

    <form action="?go=upload" method="POST" enctype="multipart/form-data" align="center"> 
     
      <img   id="preview"  width="106" height="122" /><br/>
      <div align="center">
      Arquivo:<input  type="file" name="imagem" onchange="document.getElementById('preview').src = window.URL.createObjectURL(this.files[0])" align="center" >
</div><br/>
      <input type="submit" name="Salvar">
    </form>

.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é referente ao preview?

 

Uma vez realizado o request para o insert/update da imagem, a página irá recarregar. Como o input do tipo file trabalha com o local system do browser (ou seja, acessa o computador do usuário), ele é somente leitura (readonly). Por isso, você não vai conseguir inserir a imagem de volta ao input file e nem mantê-la estática.

 

Por outro lado, o que você pode fazer, é criar o preview também pelo PHP.

 

Algo como:

<?php

if (file_exists($diretorio.$novo_nomeIMG))
{
   printf('<img src="%s" title="%s" alt="%s" />' , $diretorio.$novo_nomeIMG , "Título da imagem" , "Texto alternativo da imagem");
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

grande Gabriel, desde já agradeço pela ajuda. mas ta aparecendo esse erro: Parse error: syntax error, unexpected '" title="' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ')' in C:\xampp\htdocs\app_agua\home.php on line 197

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ops, foi erro meu, não escapei os apóstrofos, corri ali em cima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mano, tá irado esse código e raciocínio. porém ele seta a foto após o envio e some em seguida. ele insere e some em seguida. será que tem alguma coisa a ver com o tamanho do preview? desculpe as dúvidas é pq sou meio noob ainda em php.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.