Upload multiple files in the same form and write name in the database

Asked

Viewed 465 times

0

I have a registration form with two file input.

One called file (an image) and the other called arquivo_download(a pdf).

In my table I have a column [image] and another [downloads], which write the name of the file and its extension, to be used in views and download link.

I have the code.

<?php
        include_once("../../conexao/conexao.php");
        $nome = mysqli_real_escape_string($conn, $_POST['nome']);
        $texto = mysqli_real_escape_string($conn, $_POST['texto']);
        $situacao_downloads_id = mysqli_real_escape_string($conn, $_POST['situacao_downloads_id']);
        $situacao_downloads_ordem = mysqli_real_escape_string($conn, $_POST['situacao_downloads_ordem']);

        //Pasta onde o arquivo vai se salvo
        $_UP['pasta'] = '../../../imagens/downloads/';

        //Tamanho máximo do arquivo em Bytes
        $_UP['tamanho'] = 1024*1024*100; //5mb

        //Array com as extensões permitido
        $_UP['extensoes'] = array('.png','.jpg','.jpeg','.gif','.pdf');

        //Renomeia o arquivo? (se true, o arquivo será salvo como .jpg e em nome único)
        $_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 enviado de nenhuma imagem';

        //Verfica se houve algum erro com o upload. Se sim, exibe mensagem de 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
        }

        //O arquivo passou em todas as verificações, hora de tentar move-lo para a pasta foto
        else{
            //Verificar se deve trocar o nome do arquivo
            if($_UP['renomeia'] == true){
                //Criar um nome baseado no UNIX TIMESTAMP atual e com a extensão jpg
                $nome_final = time();
            }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
                $result_downloads = "INSERT INTO downloads (ordem, nome, texto, situacao_downloads_id, imagem, downloads, created) VALUES ('{$situacao_downloads_ordem}','{$nome}', '{$texto}', '{$situacao_downloads_id}', '{$nome_final}', '{$nome_final_arquivo}', NOW())";
                $resultado_downloads = mysqli_query($conn, $result_downloads);
                if(mysqli_affected_rows($conn) != 0){
                echo "
                    <META HTTP-EQUIV=REFRESH CONTENT = '0;URL=".$dominioadm."administrativo.php?link=24'>
                    <script type=\"text/javascript\">
                        alert(\"SUCESSO! Download foi cadastrado com sucesso.\");
                    </script>
                ";  
                }else{
                    echo "
                        <META HTTP-EQUIV=REFRESH CONTENT = '0;URL=".$dominioadm."administrativo.php?link=23'>
                        <script type=\"text/javascript\">
                            alert(\"ERRO! Não foi possivel cadastrar o download, tente novamente!\");
                        </script>
                    ";  
                }
            }else{
                //Upload não foi efetuado com sucesso
                echo "
                    <META HTTP-EQUIV=REFRESH CONTENT = '0;URL=".$dominioadm."administrativo.php?link=23
                    '>
                    <script type=\"text/javascript\">
                        alert(\"Erro! dica não foi cadastrada. Erro no upload do arquivo, verifique o tamanho do arquivo 2 megabytes ou formato png, jpg, jpeg, gif.\");
                    </script>
                ";
            }
        } ?>

<?php $conn->close(); ?>

I am trying to use the [move_upload_file], to upload the 2 files in the same folder, as they are 2 different files, one the product image, and another the pdf file of the product catalog.

And an inset, which takes the names of the files and writes to their columns.

But I can only send one file at a time.

Can anyone help, or guide me on how to do.

  • In what part of the code you call the function move_uploaded_file for arquivo_download and what would that be $_FILES["arquivo, download"]?

  • It seems that you are making a mess between PHP and DOM selectors (CSS, Javascript) when using this code $_FILES["arquivo, download"]

  • I edited the code for original, these two lines are my attempts, as I did not understand, I ended up leaving it in the code, in this way it only uploads and writes in the database the file that comes from the input "file", already the file downloads that comes from the input "downloads" Nothing happens because the code is missing. That: move_uploaded_file para arquivo_download e o que seria esse $_FILES["arquivo, download"] and $_FILES["arquivo, download"], there are no attempts.

No answers

Browser other questions tagged

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