Image not saved in directory

Asked

Viewed 364 times

-1

You guys, good morning, I’m having a little problem, simple but boring, I have a form that sends some information and images, and this form is editable, the information is changed perfectly, I’m having trouble with the image, so it seems to be changing, But only in the bank, the directory folder is empty, you have to display the image without the directory? because when the form is sent for the first time it is all right the image is displayed without errors, however when I change it does not go to the directory. If anyone can help, I’d appreciate it

salva_ed.php

<?php
//inicia conexão com o banco 
include ("conexao.php");
$new_name = "";

 // recebe o codigo do registro 

$iden = isset($_POST['iden'])?$_POST['iden']:""; 

$iden = $_POST ['codigo']; 

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

// aqui seria onde ele veifica se existe algo no campo arquivo e o substitui por um valor em branco 
if($arquivo == ""){
    $query =("update eqp set arquivo = '' WHERE codigo='$iden'");
}else{

// aqui seria onde fazia o update da imagem, dando um novo nome e movendo para a pasta de upload 
 if(isset($_FILES['imagem']))
   {
      $sql =  mysqli_query("SELECT * FROM eqp WHERE codigo = '$iden' ");
      $escrever=mysql_fetch_array($sql);

    date_default_timezone_set("Brazil/East"); //Definindo timezone padrão
    $ext = strtolower(substr($_FILES['imagem']['name'],-4)); //Pegando extensão do arquivo
    $new_name = $resultado['foto']; //Definindo um novo nome para o arquivo
    $dir ='uploads/'; //Diretório para uploads

    move_uploaded_file($_FILES['imagem']['tmp_name'], $dir.$new_name); //Fazer upload do arquivo

   }
$new_name = $_FILES['arquivo']["name"];
$imagem = $new_name;

var_dump($imagem);
echo '<pre>';
print_r($imagem);
echo '</pre>';
    
    
$query=("UPDATE eqp SET arquivo= '$imagem' WHERE codigo='$iden'");

  $result = mysqli_query($conexao,$query);

  // Verifica se o comando foi executado com sucesso
  if(!$result)
    echo "Registro NÃO alterado.";
  else
    echo "Registro Alterado com sucesso.";
}
?>

final message

string(12) "IMG_6175.JPG"

IMG_6175.JPG

Registro Alterado com sucesso.

  • Do you know if the folder has the permissions set the right way? Sometimes the file is not written because the system is not letting the code access the folder.

  • 1

    hello @adrianosmateus thanks for the attention, man, I suspected this too and took a look, is this with the permission right, because as said, when and sent without being changed the image will right to the directory and is displayed normally.

  • You can post the HTML code of the data submission form?

  • so this is how the html code @adrianosmateus <form method="post" action="parses 1.php" enctype="Multipart/form-data"><form> <div class="form-group"> <input type="Submit" class="bnt save" value="Send"> label<for="inputEmail3" class="col-Sm-2 control-label">Image:</label> <div class="col-Sm-10"> <H5>Attached file: <font color="#00BFFF">*</font></H5> </input type="file" class= "attachment"name"> </div> </div> </form</form>

  • I saw that there is another <form> tag after the <form method="post" action="parse.php" enctype="Multipart/form-data">. Take that tag off and try again.

  • face, that and my home page, that form that is responsible for editing and is like this : <form method='post' enctype='Multipart/form-data' action='salva_ed.php''> <td>Code:</td><td> <input type='text' name='code' value='" . $code . " '> </td> <td>Attached file: <input type='file' class= 'attachment' name='file'> </td> <br><<br> </tr> <br> <input type='Submit' class='bnt save' value='Save'>

Show 1 more comment

3 answers

0

From what I understand your problem is just in moving the uprated file. Try the following:

$arquivo = $_FILES['arquivo'];

$diretorio = '../nome_da_pasta/'; //define o caminho do diretório
$arquivo = $diretorio . basename($_FILES['arquivo']['nome']);

echo '<pre>';
if (move_uploaded_file($_FILES['arquivo']['nome_temporario'], $arquivo)) { //move o arquivo para o diretório
echo '';
}else{
echo 'Não foi possível mover o arquivo.';
 } 

print_r($_FILES);
print "</pre>";
  • hello, thanks for the attention @silvialuize, that’s exactly my problem haha, I tested the code you sent me but without success, it does not give any error, but also does not move the file to the folder

  • That’s weird. This file comes from a form, right? You can send me the form code?

  • noobphp, try to input the image this: Accept="image/*"

  • not yet unsuccessful :S answered my own question with more pieces of code to help in understanding

0

I managed to send it to the directory, just to change the :

if (isset($_FILES['imagem'])){ 

para:

if (isset($_FILES['arquivo'])){

ficando assim o codigo:

<?php
//inicia conexão com o banco 
include ("conexao.php");
$new_name = "";

 // recebe o codigo do registro 

$iden = isset($_POST['iden'])?$_POST['iden']:""; 

$iden = $_POST ['codigo']; 

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

// aqui seria onde ele veifica se existe algo no campo arquivo e o substitui por um valor em branco 
if($arquivo == ""){
$query =("update eqp set arquivo = '' WHERE codigo='$iden'");
}else{

// aqui seria onde fazia o update da imagem, dando um novo nome e movendo para a pasta de upload 
if (isset($_FILES['arquivo'])){
$extensao= strtolower(substr($_FILES['arquivo']['name'], -4));
$novo_nome= md5(time()) . $extensao;
$diretorio= "upload/";

   if ( move_uploaded_file($_FILES['arquivo']['tmp_name'], $diretorio.$novo_nome)){
   echo"sucesso";
   }else{
   echo"nao";
   }

}
$novo_nome = $_FILES['arquivo']["name"];
$imagem = $novo_nome;

var_dump($imagem);
echo '<pre>';
print_r($imagem);
echo '</pre>';


$query=("UPDATE eqp SET arquivo= '$imagem' WHERE codigo='$iden'");

  $result = mysqli_query($conexao,$query);

  // Verifica se o comando foi executado com sucesso
  if(!$result)
echo "Registro NÃO alterado.";
  else
echo "Registro Alterado com sucesso.";
}
?>

now is sending normally to the directory and changing in the database, however I am not able to display this new image, I am trying so :

cons_.php

<?php

//inicia a conexao com o banco 

include_once("conexao.php"); 

//filtro para pesquisa por palavra chave 

$filtro = isset($_GET['filtro'])?$_GET['filtro']:"";

//consulta slq
$sql = "SELECT * FROM eqp";
$consulta = mysqli_query($conexao,$sql);
$registros = mysqli_num_rows($consulta);

?>

<html lang ="pt-br">         

  <head>                      

    <meta charset="utf-8"> 
    <title>Filtro de Busca </title>
        <link rel="stylesheet" href="../agoravai/edicao/form_consultate.css">


  </head>


      <body>

         <div class="container">

         	<nav>

         		<ul class="menu">

                   <li></li>
                 <a href="inicio.php"><li>Inicio</li></a>
                    <a href="filtros.php"><li>Filtros:</li></a>
                    <a href="telalog_ed_cons.php"><li>Editar Dados:</li></a>
                 
                     
                    
                    

                </ul>
                
         	</nav>

           <section>

          
              <h1>Consulta por Formularios Enviados Realizada:</h1>
              <br>
              <hr>
               
               

        

               <?php
               
               //verifica os itens do banco e os exibe
                print" <h1>$registros Registros encontrados:</h1>";
               
               while($exebirregistros = mysqli_fetch_array($consulta)){
                   
                    $codigo = $exebirregistros[0];
                  $nome = $exebirregistros[1];
                   $setor =$exebirregistros[2];
                   $equipamento =$exebirregistros[3];
                   $numeroserie =$exebirregistros[4];
                   $numeropatrimonio =$exebirregistros[13];
                   $locais =$exebirregistros[5];
                   $motivo =$exebirregistros[6];
                   $enviando = $exebirregistros[7];
                   $recebendo =$exebirregistros[8];
                   $defeito =$exebirregistros[9];
                   $transporte =$exebirregistros[10];
                   $dataid =$exebirregistros[11];
                   $dataret =$exebirregistros[12];
                    $numeropatrimonio =$exebirregistros[13];
                   $arquivo =$exebirregistros[14];
                   $ordemdeservico =$exebirregistros[15];
                   
//alerme para data de envio e entrega de equipamento
                   
$data_atual = new DateTime(date('Y-m-d'));
$data_expiracao = new DateTime($dataret);

$intervalo_em_dias = $data_atual->diff($data_expiracao);

echo $intervalo_em_dias->format('<h4>%R%a DIAS PARA VENCER O RETORNO</h4>');
             
                   
           echo (" <table border='2px' cellpacing='15px'>
        
           <tr>
            <td>Codigo: </td>
        <td>Nome:</td>
            <td>Setor:</td>
            <td>Equipamento:</td>
            <td>Anexo N° ".$codigo.":</td>
            <td>Numero de Serie:</td>
            <td>Numero de Patrimonio:</td>
            <td>Local de Envio:</td>
            <td>Motivo Envio:</td>
            <td>Quem esta Enviando:</td>
            <td>Quem esta Recebendo:</td>
            <td>Defeito:</td>
            <td>Meio de Transporte:</td>
            <td>Data ida:</td>
            <td>Data Retorno:</td>
           
          
            </tr> ");      
                    
    echo  ("
    
<tr>

    <td>" . $codigo . " </td><br>
    
    <td>" . $nome . " </td>
    
    <td>" . $setor . " </td>
    
    <td>" . $equipamento . " </td>
    
    <td class= ok >" . "<img src='upload/".$arquivo."'width=50px height=50px /></td>
    
    <td>" . $numeroserie . " </td>
    
    <td>" . $numeropatrimonio . " </td>
    
    <td>" . $locais . " </td>
    
    <td>" . $motivo . " </td>
    
    <td>" . $enviando . " </td>
    
    <td>" . $recebendo . " </td>
    
    <td>" . $defeito . " </td>
    
    <td>" . $transporte . " </td>
    
    <td>" . $dataid . " </td>
    
    <td>" . $dataret . " </td>
    
  
    </tr>
    <td> <a href='ed_cons_.php?codigo=" . $codigo . "'>editar</td>


    
    ")
        ;
                   
              
               }  
               
            
               
               mysqli_close($conexao);
                                
               ?>
              
                <br>


           </section>


         </div>



     </body>


</html>

0

Talk to the guys, after a while I got!!!!

Follow the code for changing data and image in a php form, I’ll leave it here for if anyone else faces the problem...

query

<?php

session_start();
	if (empty($_SESSION['login'])){
			header("Location: index.php");
			die();

    }

include ("conexao.php");
$login = $_SESSION['login'];
?>

<html lang ="pt-br">      
<html>
  <head>                     

    <meta charset="utf-8"> 
    <title>Formulario</title>
    <link rel="stylesheet" href="../formularios_rictv/css/estilo.css">

  </head>
    
    
            <body>
                     
    	            <nav>

                                           
                                               
         		            <ul class="menu">

                                                           <li></li>
                            <a href="../formularios_rictv/inicio.php"><li>Inicio</li></a>
                             <a href="../equipamentos/consultaeqp.php"><li>Consulta</a>
                 

                               </ul>

                   </nav>
    
    
    
              </body>
    

    <body>
    
        
        
        
        <?php

        
        
$iden = isset($_GET['iden'])?$_GET['iden']:"";      

$iden = $_GET ['codigo'];
     
        
$sql = "select * from eqp where codigo = '$iden'";

$consulta = mysqli_query($conexao,$sql);

$registros = mysqli_num_rows($consulta);

while($linhas = mysqli_fetch_array($consulta)){
    
    

             $codigo = $linhas ['codigo'];
            
            $nome = $linhas ['nome'];
            $setor = $linhas ['setor'];
            $equipamento = $linhas['equipamento'];
            $numeroserie = $linhas['numeroserie'];
            $numeropatrimonio = $linhas['numeropatrimonio'];
            $locais = $linhas['locais'];
            $motivo = $linhas['motivo'];
            $enviando = $linhas['enviando'];
            $recebendo = $linhas['recebendo'];
            $defeito = $linhas['defeito'];
            $uldefeito = $linhas['uldefeito'];
            $transporte = $linhas['transporte'];
            $dataid = $linhas['dataid'];
            $dataret = $linhas['dataret'];
            $status_eqp = $linhas['status_eqp'];
            $arquivo = $linhas['arquivo'];
   
           
    
    
    
    
        
    
    
    
            echo ("
            
            
            <tr>
            
             <form method='post' enctype='multipart/form-data' action='salva_ed.php''>
              
              
             
            <td>Codigo:</td><td> <input type='text' name='codigo' value='"  .   $codigo . "'> </td>                 
            
     <br><br>
            
             <td>Setor:</td><td> <input type='text'name='setor'value='" . $setor . "'></td>
             
    
              <br><br>
              
             <td>Equipamento:</td><td> <input type='text'name=''value='" . $equipamento . "'></td>
              
              <br><br>
              
             <td>N° de Serie:</td <td> <input type='text'name=''value='" . $numeroserie . "'></td>
              
              <br><br>
              
            <td>N° Patrimonio:</td> <td> <input type='text'name=''value='" . $numeropatrimonio . "'></td>
              
              <br><br>
              
             <td>Local de Envio:</td><td> <input type='text'name='locais'value='" . $locais. "'></td>
             
             <br><br>
             
             <td>Motivo:</td><td> <input type='text'name='motivo'value='" . $motivo . "'></td>
              
              <br><br>
              
            <td>Quem esta Enviando:</td> <td> <input type='text'name='enviando'value='" . $enviando . "'></td>
              
              <br><br>
              
             <td>Recebendo:</td><td> <input type='text'name='recebendo'value='" . $recebendo . "'></td>
              
              <br><br>
              
             <td> Defeito:</td><td> <input type='text'name='defeito'value='" . $defeito . "'></td>
              
              <br><br>
              
                <td> Ultimo Defeito:</td><td> <input type='text'name='uldefeito'value='" . $uldefeito . "'></td>
              
              <br><br>
              
             <td>Transporte:</td><td> <input type='text'name='transporte'value='" . $transporte . "'></td>
              
              <br><br>
              
             <td>Data Idá:</td><td> <input type='text'name='dataid'value='" . $dataid . "'></td>
              
              <br><br>
              
             <td> Data Retorno:</td><td> <input type='text'name='dataret'value='" . $dataret . "'></td>
                   <br><br>  
                   
                <td>Arquivo em anexo: <input type='file' class= 'anexo' name='arquivo'> </td>
                   <br><br>
                   
                   
                   
             
             <td> Situação Atual :</td><td> <input type='text'name='status_eqp'value='" . $status_eqp . "'></td>
             
            
             
             </tr>

      <br><br>
      
      <input type='submit' class='bnt salvar' value='Salvar'> 
            
  
           
 
 
 
 ");
     
        
        }
       
        ?>
        
        
        
    </body>
    
    
</html>

salva_ed.php

<?php

session_start();
	if (empty($_SESSION['login'])){
			header("Location: index.php");
			die();

    }

include ("conexao.php");
$login = $_SESSION['login'];      
            $codigo = $_POST ['codigo'];
            $login = $_SESSION ['login'];
            $setor = $_POST ['setor'];
            $locais = $_POST['locais'];
            $motivo = $_POST['motivo'];
            $enviando = $_POST['enviando'];
            $recebendo = $_POST['recebendo'];
            $defeito = $_POST['defeito'];
            $uldefeito = $_POST['uldefeito'];
            $transporte = $_POST['transporte'];
            $dataid = $_POST['dataid'];
            $dataret = $_POST['dataret'];
            $status_eqp = $_POST['status_eqp'];
$iden = isset($_POST['iden'])?$_POST['iden']:""; 

$iden = $_POST ['codigo']; 

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

if($arquivo == ""){
    $query =("update eqp set arquivo = '' WHERE codigo='$iden'");
}else{

// aqui seria onde fazia o update da imagem, dando um novo nome e movendo para a pasta de upload 
if (isset($_FILES['arquivo'])){
    $extensao= strtolower(substr($_FILES['arquivo']['name'], -4));
    $novo_nome= md5(time()) . $extensao;
    $diretorio= "upload/";
    
   if ( move_uploaded_file($_FILES['arquivo']['tmp_name'], $diretorio.$novo_nome)){
       echo"sucesso";
   }else{
       echo"nao";
   }
    
var_dump($novo_nome);
echo '<pre>';
print_r($novo_nome);
echo '</pre>';
    
}
}

$sql = "UPDATE eqp SET  codigo= '$codigo' , setor = '$setor',locais = '$locais', motivo = '$motivo', enviando = '$enviando', recebendo = '$recebendo', defeito = '$defeito', uldefeito = '$uldefeito', transporte = '$transporte', dataid = '$dataid', dataret = '$dataret', login = '$login', status_eqp = '$status_eqp', arquivo= '$novo_nome' WHERE codigo= '$codigo' "; 

$consulta = mysqli_query($conexao,$sql);

if($consulta){
    
echo ("<h1>Dados alterados com sucesso</h1>");
    
} else {
    
    echo ("<h1>Erro inesperado</h1>". mysqli_error());
}

mysqli_close($conexao);

?>

<!doctype html> 

<html lang ="pt-br">          <!define a linguagem da pagina>                   <!input type="text"> <!para inserir um campo e o tipo>

  <head>                      <!informações do cabeçelho>

    <meta charset="utf-8"> 
    <title>Formulario</title>
    <link rel="stylesheet" href="../formularios_rictv/css/css_tela_salvar.css">

  </head>


      <body>

         <div class="container">

         	<nav>

         		<ul class="menu">

                  <li></li>
                    <a href="inicio.php"><li>Serviços</li></a>
                 <a href="cons.php"><li>Consulta</li></a>
                  <a href="../equipamentos/inicio.php"><li>Equipamentos</li></a>

                </ul>

                    </nav>

           <section>

          

vlww

Browser other questions tagged

You are not signed in. Login or sign up in order to post.