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

Estou realizando upload, ele registra no BD porém o arquivo não está indo para a pasta...


Guilherme Maia Bezerra

Pergunta

==============Aqui está meu codigo==============

cad_pessoa.php

form method="POST"  action="proc_upload.php" enctype="multipart/form-data">

    <h5><b>COMPROVANTE RESIDÊNCIA</b></h5> <input name="residencia" id="txtbusca3" type="file"><br><br>


            <button type="submit" id="txtbusca2"class="btn2 btn-info">Cadastrar</button>

==============proc_upload.php==============

<!DOCTYPE html>
<html lang="pt-br">
    <head>
        <meta charset="utf-8">
    </head>
    </body>
        <?php
            include_once("conexao.php");
            $arquivo     = $_FILES['arquivo']['name'];
            
            //Pasta onde o arquivo vai ser salvo
            $_UP['pasta'] = 'img/';
            
            //Tamanho máximo do arquivo em Bytes
            $_UP['tamanho'] = 1024*1024*100; //5mb
            
            //Array com a extensões permitidas
            $_UP['extensoes'] = array('png', 'jpg', 'jpeg', 'gif');
            
            //Renomeiar
            $_UP['renomeia'] = false;
            
            //Array com os tipos de erros de upload do PHP
            $_UP['erros'][0] = 'Não houve erro';
            $_UP['erros'][1] = 'O arquivo no upload é maior que o limite do PHP';
            $_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especificado no HTML';
            $_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
            $_UP['erros'][4] = 'Não foi feito o upload do arquivo';
            
            //Verifica se houve algum erro com o upload. Sem sim, exibe a mensagem do erro
            if($_FILES['arquivo']['error'] != 0){
                die("Não foi possivel fazer o upload, erro: <br />". $_UP['erros'][$_FILES['arquivo']['error']]);
                exit; //Para a execução do script
            }
            
            //Faz a verificação da extensao do arquivo
            $extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));
            if(array_search($extensao, $_UP['extensoes'])=== false){        
                echo "
                    <META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://localhost/coopatam/cad_pessoa.php'>
                    <script type=\"text/javascript\">
                        alert(\"A imagem não foi cadastrada extesão inválida.\");
                    </script>
                ";
            }
            
            //Faz a verificação do tamanho do arquivo
            else if ($_UP['tamanho'] < $_FILES['arquivo']['size']){
                echo "
                    <META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://localhost/coopatam/cad_pessoa.php'>
                    <script type=\"text/javascript\">
                        alert(\"Arquivo muito grande.\");
                    </script>
                ";
            }
            
            //O arquivo passou em todas as verificações, hora de tentar move-lo para a pasta foto
            else{
                //Primeiro verifica se deve trocar o nome do arquivo
                if($UP['renomeia'] == true){
                    //Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg
                    $nome_final = time().'.jpg';
                }else{
                    //mantem o nome original do arquivo
                    $nome_final = $_FILES['arquivo']['name'];
                }
                //Verificar se é possivel mover o arquivo para a pasta escolhida
                if(move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta']. $nome_final)){
                    //Upload efetuado com sucesso, exibe a mensagem
                    $query = mysqli_query($conn, "INSERT INTO arquivo (
                    residencia) VALUES('$nome_final')");
                    echo "
                        <META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://localhost/coopatam/cad_pessoa.php'>
                        <script type=\"text/javascript\">
                            alert(\"Imagem cadastrada com Sucesso.\");
                        </script>
                    ";    
                }else{
                    //Upload não efetuado com sucesso, exibe a mensagem
                    echo "
                        <META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://localhost/coopatam/cad_pessoa.php'>
                        <script type=\"text/javascript\">
                            alert(\"Imagem não foi cadastrada com Sucesso.\");
                        </script>
                    ";
                }
            }
            
            
        ?>
        
    </body>
</html>

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Tive que fazer várias modificações para o seu código funcionar.

O primeiro problema é o nome do input na primeira página ("residencia") que não é igual ao índice de $_FILES da segunda página ("arquivo"), assim atribui name="arquivo" ao input da primeira página. Além dos erros de digitação, encontrei erro de lógica (não sei se consegui resolver todos). Finalmente, você tenta registrar o caminho da imagem no banco de dados. Aqui você precisa conferir se o MySQL permite fazer tal registro na tabela, principalmente verificar o problema da chave primária da tabela. E assim ficou o código:

astudy.php
------------------------------------------

<form method="POST"  action="astudy2.php" enctype="multipart/form-data">
<h5><b>COMPROVANTE RESIDÊNCIA</b></h5> <input name="arquivo" id="txtbusca3" type="file"><br><br>
<button type="submit" id="txtbusca2"class="btn2 btn-info">Cadastrar</button>
</form>

astudy2.php
------------------------------------------

<?php
$mysqli=new mysqli("localhost","root","","astudy");
$arquivo=$_FILES['arquivo']['name'];
//Pasta onde o arquivo vai ser salvo
$_UP['pasta'] = 'img/';
//Tamanho máximo do arquivo em Bytes
$_UP['tamanho'] = 1024*1024*100; //5mb
//Array com a extensões permitidas
$_UP['extensoes'] = array('png', 'jpg', 'jpeg', 'gif');
//Renomeiar
$_UP['renomeia'] = false;
//Array com os tipos de erros de upload do PHP
$_UP['erros'][0] = 'Não houve erro';
$_UP['erros'][1] = 'O arquivo no upload é maior que o limite do PHP';
$_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especificado no HTML';
$_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
$_UP['erros'][4] = 'Não foi feito o upload do arquivo';
//Verifica se houve algum erro com o upload. Sem sim, exibe a mensagem do erro
//Faz a verificação da extensao do arquivo
$tmp=explode('.', $_FILES['arquivo']['name']);
$extensao = strtolower(end($tmp));
if(array_search($extensao, $_UP['extensoes'])=== false){        
    echo "A imagem não foi cadastrada, extensão inválida";}
//Faz a verificação do tamanho do arquivo
if ($_UP['tamanho'] < $_FILES['arquivo']['size']){
    echo "Arquivo muito grande.";}
//O arquivo passou em todas as verificações, hora de tentar move-lo para a pasta foto
//Primeiro verifica se deve trocar o nome do arquivo
if(is_uploaded_file($_FILES['arquivo']['tmp_name'])){  
		// Verifica se o diretório de destino existe, senão cria o diretório  
		if(!file_exists("img")){mkdir("img");} 
		if($_UP['renomeia'] == true){
			//Cria um nome baseado no UNIX TIMESTAMP atual e com extensão .jpg
			$nome_final = time().'.jpg';} else {
				//mantem o nome original do arquivo
				$nome_final = $_FILES['arquivo']['name'];}}
//Verificar se é possivel mover o arquivo para a pasta escolhida
//echo "files-arquivo-tmp-name".$_FILES['arquivo']['tmp_name']."pasta_nomefinal".$_UP['pasta']. $nome_final;exit;
if(move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta']. $nome_final)){
	if($_FILES['arquivo']['error'] != 0){
		die("Não foi possivel fazer o upload, erro: <br />". $_UP['erros'][$_FILES['arquivo']['error']]);
		exit;}
    //Upload efetuado com sucesso, exibe a mensagem
    $query=$mysqli->query("insert into tbusuario (imagem) values('$nome_final')");
    echo "Imagem cadastrada com Sucesso.";}
?>

 

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...