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

Endereço da imagem não reconhecido


Maxgomesrj

Pergunta

Boa Noite!...

Estou tentando um sistema em PHP e que no banco de dados cria o endereço da imagem e a imagem fica-rá em uma pasta mas não estou conseguindo, dando a seguinte mensagem.

.

Notice: Undefined variable: _file in D:\xampp\htdocs\diretorio\processa.php on line 4
Nome do produto: Curso PHP 
Nome da Imagem do produto: 

.

Segue o código do acesso ao banco de dados(coneccao.php)

<?php
    $servidor = "localhost";
    $usuario = "root";
    $senha = "";
    $dbname = "produto_imagem";

    //Criar a conexão
    $conn = mysqli_connect($servidor, $usuario, $senha, $dbname);
    if(!$conn){
        die("Falha na conexao: " . mysqli_connect_error());
    }else{
        //echo "Conexao realizada com sucessso";
    }

?>

Página principal(index.php)

<form method="POST" action="processa.php" enctype="multpart/form-data">
    <label>Nome: </label>
    <input type="text" name="nome"><br><br>
    <label>Imagem: </label>
    <input type="file" name="arquivo"/>
    <input type="submit" value="Cadastrar">
</form>    

Parte que envia a imagem(processa.php

<?php
    include_once("conexao.php");
    $nome=$_POST['nome'];
    $nome_imagem = $_FILES['arquivo']['name'];
    echo "Nome do produto: $nome <br>";
    echo "Nome da Imagem do produto: $nome_imagem <br>";


    //Salvar o banco de dados
    $result_produto = "INSERT INTO produtos (nome, imagem) VALUES ('$nome', $nome_imagem')";
    $resultado_produto = mysqli_query($conn, $result_produto);
    $ultimo_id = mysqli_insert_id($conn);
    echo "Ultimo Id Inserido: $ultimo_id <br>";

    //Pasta onde o arquivo vai ser salvo
    $_UP['pasta'] = 'imagens/produtos/'.$ultomo_id.'/';

    //Criar a pasta de foto do produto
    mkdir($_UP['pasta'], 0777);

    //Veriricar se é possível mover o arquivo para a pasta escolhida
    if(move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'].$nome_imagem)){
        echo "Imagem salva com sucesso!<br>";
    }
    

?>

 

Desde já agradeço.

 

Ass: Max...

 

 

Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Ele diz que a variavel $_file não existe na linha 4 de processa.php

19 horas atrás, Maxgomesrj disse:

Notice: Undefined variable: _file in D:\xampp\htdocs\diretorio\processa.php on line 4

Porém a 4ª linha está com $_FILES

19 horas atrás, Maxgomesrj disse:

$nome_imagem = $_FILES['arquivo']['name'];

A pergunta que eu te faço é será que o arquivo está escrito exatamente da forma como colou aqui?

Outra pergunta é entre o "E" e o "S" do FILES tem algum caractere especial não imprimível? Isso é dificil de acontecer, mas acontece, tente apagar a palavra FILES e escreva de novo

Link para o comentário
Compartilhar em outros sites

  • 0

Corrigindo: no exemplo era $_FILE em vez de $_FILES.

...corrigi.

 

Agora está dando as seguintes mensagens:

Notice: Undefined variable: _FILE in D:\xampp\htdocs\diretorio\processa.php on line 4
Nome do produto: Curso PHP 
Nome da Imagem do produto: 
Ultimo Id Inserido: 0 

Warning: mkdir(): File exists in D:\xampp\htdocs\diretorio\processa.php on line 19

Notice: Undefined index: arquivo in D:\xampp\htdocs\diretorio\processa.php on line 22

 

----
No banco de dados o id é criado com o numero um, porem a pasta é criada com no valor zero, que na verdade deveria ser numero 1.

Deve ser por isso que o arquivo não é enviado para a pasta pois foi criada com o nome de zero e não com 1.

 

Editado por Maxgomesrj
Link para o comentário
Compartilhar em outros sites

  • 0
23 horas atrás, Leonardo Persan disse:

Ele diz que a variavel $_file não existe na linha 4 de processa.php

Porém a 4ª linha está com $_FILES

A pergunta que eu te faço é será que o arquivo está escrito exatamente da forma como colou aqui?

Outra pergunta é entre o "E" e o "S" do FILES tem algum caractere especial não imprimível? Isso é dificil de acontecer, mas acontece, tente apagar a palavra FILES e escreva de novo

Estou conseguindo resolver em parte

na linha da página index.php estava errado
<form method="POST" action="processa.php" enctype="multpart/form-data">
O correto "multipart/form-data"> e não "multpart/form-data">" , pois tinha esquecido a letra i da palavra.

Estou conseguindo criar a pasta com os nomes do id's mas não estou conseguindo copiar o nome do arquivo e coloca-lo no bando de dados e nem copiar o arquivo para a sua pasta de destino.

.

Aparecem as seguintes mensagens.
Notice: Undefined variable: _FILE in D:\xampp\htdocs\diretorio\processa.php on line 4
Nome do produto: Foto Max 
Nome da Imagem do produto: 
Ultimo Id Inserido: 6 

Notice: Undefined index: arquivo in D:\xampp\htdocs\diretorio\processa.php on line 22

Link para o comentário
Compartilhar em outros sites

  • 0

Coloquei a variavel como $_FILES,  tanto em cima como em baixo, poré informa variavel _FILES
Coloquei o código assim:
 

<?php
    include_once("conexao.php");
    
    $nome=$_POST['nome'];
    $nome_imagem = $_FILES['arquivo']['name'];    
    echo "Nome do produto: $nome <br>";
    echo "Nome da Imagem do produto: $nome_imagem <br>";


    //Salvar no banco de dados
    $result_produto = "INSERT INTO produtos (nome, imagem) VALUES ('$nome', '$nome_imagem')";
    $resultado_produto = mysqli_query($conn, $result_produto);
    $ultimo_id = mysqli_insert_id($conn);
    echo "Ultimo Id Inserido: $ultimo_id <br>";

    //Pasta onde o arquivo vai ser salvo
    $_UP['pasta'] = 'imagens/produtos/'.$ultimo_id.'/';

    //Criar a pasta de foto do produto
    mkdir($_UP['pasta'], 0777);

    //Veriricar se é possível mover o arquivo para a pasta escolhida
    if(move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'].$nome_imagem)){
        echo "Imagem salva com sucesso!<br>";
    }
    

?>

Esta dando a mensagem:
Notice: Undefined index: arquivo in D:\xampp\htdocs\diretorio\processa.php on line 5
Nome do produto: Foto Max 
Nome da Imagem do produto: 
Ultimo Id Inserido: 41 

Notice: Undefined index: arquivo in D:\xampp\htdocs\diretorio\processa.php on line 23

 

Se eu inicializo a variável fica assim, sem erros porém não mostra o nome da imágem não grava no banco de dados, somente aparece na pagina index.php.

Nome do produto: Foto Max 
Nome da Imagem do produto: 
Ultimo Id Inserido: 42 

Inicializando a variável:
<?php
    include_once("conexao.php");
    $_FILES = null;
    $nome=$_POST['nome'];
    $nome_imagem = $_FILES['arquivo']['name'];    
    echo "Nome do produto: $nome <br>";
    echo "Nome da Imagem do produto: $nome_imagem <br>";

Link para o comentário
Compartilhar em outros sites

  • 0

Porém está funcionado agora.
.
Estou usando windows 7
Não fiz nenhuma configuração no xampp.
.
Caiu uma tempestade aqui e ainda esta caindo, com isso o computador desligou várias vezes.

.

E funcionou

.
Codigo:
 

<?php
    include_once("conexao.php");
    $nome=$_POST['nome'];
    $nome_imagem = $_FILES['arquivo']['name'];    
    echo "Nome do produto: $nome <br>";
    echo "Nome da Imagem do produto: $nome_imagem <br>";


    //Salvar no banco de dados
    $result_produto = "INSERT INTO produtos (nome, imagem) VALUES ('$nome', '$nome_imagem')";
    $resultado_produto = mysqli_query($conn, $result_produto);
    $ultimo_id = mysqli_insert_id($conn);
    echo "Ultimo Id Inserido: $ultimo_id <br>";

    //Pasta onde o arquivo vai ser salvo
    $_UP['pasta'] = 'imagens/produtos/'.$ultimo_id.'/';

    //Criar a pasta de foto do produto
    mkdir($_UP['pasta'], 0777);

    //Veriricar se é possível mover o arquivo para a pasta escolhida
    if(move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta'].$nome_imagem)){
        echo "Imagem salva com sucesso!<br>";
    }
    

?>

Será um problema no windows?
Oque escuto que programar no linux é melhor que no windows
Já tentei instalar o meteor no windows e nada.
.
Gostaria de saber as possibilidades desse erro...!

Link para o comentário
Compartilhar em outros sites

  • 0
Em 25/01/2019 em 17:14, Maxgomesrj disse:

Notice: Undefined index: arquivo in D:\xampp\htdocs\diretorio\processa.php on line 23

Esse erro quer dizer que dentro de $_FILES não existe o índice "arquivo"

Porém a forma como você colocou o HTML está correto.

Em 25/01/2019 em 18:20, Maxgomesrj disse:

Oque escuto que programar no linux é melhor que no windows

Com certeza, tenta usar o Vagrant
https://www.youtube.com/watch?v=VaJDxKgQj8w&amp;list=PLVSNL1PHDWvQIc7DqOh3EdrdqrKSo6S_1

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