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

Sistema de múltiplos uploads com destinários diferentes


Pedro Lukas

Pergunta

Eai galera, alguém tem ideia de como fazer um sistema de múltiplos uploads de arquivos, mas com pastas diferentes, eu tenho um sistema de upload funcional que meu professor me ajudou a fazer que funcionar super bem, eu faço o upload de um arquivo que no caso é uma imagem, mas ele só grava o nome no banco de dados e salva o arquivo em si numa pasta configurada, só que preciso de um outro upload pra um arquivo .zip que no caso seria um produto que irá pra uma pasta distinta da qual vão as imagens e o seu nome no banco de dados irá ser salvo pra uma coluna destina na qual é NOME_PRODUTO, como posso fazer? vou anexar o arquivo em php a qual utilizo pra fazer o upload da imagem, quem poder me ajudar fico grato dms, segue o código que utilizo pra fazer o upload

<!DOCTYPE html>
<html lang="pt-br">
    <head>
        <meta charset="utf-8">
    </head>
    </body>
        <?php
            include_once("conexao.php");
            $valor = $_POST['valor'];
            $bot = $_POST['bot'];
            $vocacao = $_POST['vocacao'];
            $nome = $_POST['nome'];
            $hash_file = $_POST['hash_file'];
            $options = ['cost' => 8];
            $hash = password_hash($hash_file,  PASSWORD_BCRYPT, $options);
            $name_file = $_POST['name_file'];
            $arquivo     = $_FILES['arquivo']['name'];
            $descricao = $_POST['descricao'];
            
            
            //Pasta onde o arquivo vai ser salvo
            $_UP['pasta'] = '../../img/produtos/';
            
            //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['errors'][0] = 'Não houve erro';
            $_UP['errors'][1] = 'O arquivo no upload é maior que o limite do PHP';
            $_UP['errors'][2] = 'O arquivo ultrapassa o limite de tamanho especificado no HTML';
            $_UP['errors'][3] = 'O upload do arquivo foi feito parcialmente';
            $_UP['errors'][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['errors'][$_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://www.kingscripts.com.br/Administrar/Paginas/Adicionar_produtos.php'>
                    <script type=\"text/javascript\">
                        alert(\"O produto não foi inserido, 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://www.kingscripts.com.br/Administrar/Paginas/Adicionar_produtos.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 produtos (valor, bot, vocacao, nome, hash_file, name_file, img, descricao, created) VALUES('$valor', '$bot', '$vocacao', '$nome', '$hash', '$name_file', '$nome_final', '$descricao', NOW())");
                    echo "
                        <META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://www.kingscripts.com.br/Administrar/Paginas/Adicionar_produtos.php'>
                        <script type=\"text/javascript\">
                            alert(\"Produto inserido com Sucesso.\");
                        </script>
                    ";    
                }else{
                    //Upload não efetuado com sucesso, exibe a mensagem
                    echo "
                        <META HTTP-EQUIV=REFRESH CONTENT = '0;URL=http://www.kingscripts.com.br/Administrar/Paginas/Adicionar_produtos.php'>
                        <script type=\"text/javascript\">
                            alert(\"Produto não foi inserido com Sucesso.\");
                        </script>
                    ";
                }
            }
            
            
        ?>
        
    </body>
</html>

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Ao invés de trabalhar com múltiplos uploads, eu achei melhor começar com apenas um upload, principalmente porque o meu PHP veio configurado para fazer upload de no máximo 2 mb. Eu alterei para 8 mb, através do ícone do WampServe > PHP > PHP Settings.

Acrescentei a extensão 'sql' nas extensões permitidas, pedindo para esse tipo de extensão ser aquivado na pasta2, e os demais na pasta1.

<form method=post enctype=multipart/form-data>
<input type=file name=arquivo>
<input type=submit>
</form>
<?php
if(!isset($_FILES['arquivo']['name'])){exit;}
$arquivo     = $_FILES['arquivo']['name'];
$extensao = explode('.', $_FILES['arquivo']['name'])[1];
if($extensao=='sql'){$pasta="./pasta2/";} else {$pasta="./pasta1/";}
$_UP['pasta'] = $pasta;
$_UP['tamanho'] = 1024*1024*100;
$_UP['extensoes'] = array('png', 'jpg', 'jpeg', 'gif', 'sql');
$_UP['renomeia'] = false;
$_UP['errors'][0] = 'Não houve erro';
$_UP['errors'][1] = 'O arquivo no upload é maior que o limite do PHP';
$_UP['errors'][2] = 'O arquivo ultrapassa o limite de tamanho especificado no HTML';
$_UP['errors'][3] = 'O upload do arquivo foi feito parcialmente';
$_UP['errors'][4] = 'Não foi feito o upload do arquivo';
if($_FILES['arquivo']['error'] != 0){
    die("Não foi possivel fazer o upload, erro: <br />". 
            $_UP['errors'][$_FILES['arquivo']['error']]);}
if(array_search($extensao, $_UP['extensoes'])=== false){        
    echo "O produto não foi inserido, extesão inválida.";}
    else if ($_UP['tamanho'] < $_FILES['arquivo']['size']){
                echo "Arquivo muito grande.";}
else{
    if($_UP['renomeia'] == true){
    $nome_final = time().'.jpg';
}else{$nome_final = $_FILES['arquivo']['name']; }
                
if(move_uploaded_file($_FILES['arquivo']['tmp_name'], $_UP['pasta']. $nome_final)){
                    echo "Upload efetuado 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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...