Path to upload with variable

Asked

Viewed 78 times

1

I’m looking to use a "changeable" upload path. I made a bidding system, that each new bidding, is created a folder with the name of the same where will be uploaded the files related to it using mkdir(); but now do not know how to send the files, to its respective folder.

pic

When the person clicks to send file, the file had to go to the selected bidding folder.

Follow my file upload code:

    <?php 
include ("funcoes.php");
require_once ("conexao.php");

$msg = false;
$objeto = $_POST["objeto"];
var_dump($objeto);

if( isset($_POST['enviou']) && $_POST['enviou'] == 1 ){

    // arquivo
    $arquivo = $_FILES['arquivo'];

    // Tamanho máximo do arquivo (em Bytes)
    $tamanhoPermitido = 1024 * 1024 * 2; // 2Mb

    //Define o diretorio para onde enviaremos o arquivo
    $diretorio = "uploads/";

    // verifica se arquivo foi enviado e sem erros
    if( $arquivo['error'] == UPLOAD_ERR_OK ){

        // pego a extensão do arquivo
        $extensao = extensao($arquivo['name']);

        // valida a extensão
        if( in_array( $extensao, array("pdf") ) ){

            // verifica tamanho do arquivo
            if ( $arquivo['size'] > $tamanhoPermitido ){

                $msg = "<strong>Aviso!</strong> O arquivo enviado é muito grande, envie arquivos de até ".$tamanhoPermitido/MB." MB.";
                $class = "alert-warning";

            }else{
)

                // // atribui novo nome ao arquivo
                // $novo_nome  = md5(time()).".".$extensao;

                // faz o upload
                $destino = $diretorio.$objeto."/".basename($_FILES['arquivo']);
                $enviou = move_uploaded_file($_FILES['arquivo'], $destino);

                if($enviou){
                    header("Location: listalicitacao.php");
                    die();
                }else{
                    echo "Erro ao subir arquivo";
                }
            }

        }else{
            $msg = "<strong>Erro!</strong> Somente arquivos PDF são permitidos.";
            $class = "alert-danger";
        }

    }else{
        $msg = "<strong>Atenção!</strong> Você deve enviar um arquivo.";
        $class = "alert-info";
    }
}
?>

HTML in which I take the name of the bid:

<?php
require_once("elementos.php");
?>
                <div class="alinha">
                <h3>Licitações</h3>
                <form action="cadastralicitacao.php" method="post">
                  <div class="form-group">
                    <label for="exampleInputEmail1">Objeto</label>
                    <textarea class="form-control" name="objeto" rows="4"></textarea>
                  </div>
                  <div class="form-group">
                    <label for="exampleInputPassword1">Modalidade</label>
                    <select class="form-control" name="modalidade">
                      <option value="Pregão">Pregão</option>
                      <option value="Concorrência">Concorrência</option>
                      <option value="Carta convite">Carta convite</option>
                      <option value="Tomada de preços">Tomada de preço</option>
                      <option value="Leilão">Leilão</option>
                      <option value="Chamamento">Chamamento</option>
                      <option value="Dispensa">Dispensa</option>
                      <option value="Inexigibilidade">Inexigibilidade</option>
                    </select>
                  </div>
                  <div class="form-group">
                    <label for="exampleInputFile">Status do processo</label>
                    <select class="form-control" name="status">
                      <option value="Em andamento">Em andamento</option>
                      <option value="Encerrado">Encerrado</option>
                    </select>
                  </div>
                  <div class="form-group">
                    <label>Número do processo</label>
                      <input type="text" name="numprocesso" class="form-control" placeholder="Forneça o número do processo">
                  </div>
                  <div class="form-group">
                    <label>Data de abertura</label>
                    <input type="date" class="form-control" name="dataabertura" placeholder="Forneça o número do processo">
                  </div>
                  <button type="submit" class="btn btn-default">Enviar</button>
                </form>
                </div>
            </div>
        </div>
 <?php
 require_once("rodape.php");

The name of the bidding is in "Object", but I already use it on another page, in the registration.php, and I do not know how to use it in the upload page

Cadastralicitacao:

<?php

require_once("conexao.php");

$obj = $_POST["objeto"];
$mod = $_POST["modalidade"];
$sta = $_POST["status"];
$num = $_POST["numprocesso"];
$dat = $_POST["dataabertura"];

$query = "insert into licitacao (objeto, modalidade, status, numprocesso, dataabertura) values ('{$obj}','{$mod}','{$sta}','{$num}','{$dat}')";

if(mysqli_query($conexao,$query)){
    mkdir("uploads/$obj", 0777);
    header("Location: listalicitacao.php");
    die();
} else {
    echo "Erro ao adicionar licitação";
}

require_once("rodape.php");

I don’t know how to reuse this variable $object on other pages

Page where it is called uploading files:

<?php
require_once ("elementos.php");
?>
<div class="col-lg-12">
    <div class="form-group">
        <form method="post" action="recebe_upload.php" enctype="multipart/form-data">
            <input type="hidden" name="objeto" value="<?=$_POST["objeto"]?>">
            <input type="hidden" name="enviou" value="1">
            <label>Arquivo</label>
            <input type="file" name="arquivo" />
            <button type="submit" class="btn btn-default">Enviar</button>
        </form>
    </div>
</div>
  • The name of the bidding comes where ?

  • <form action="cadastralicitacao.php" method="post"> <div class="form-group"> <label for="exampleInputEmail1">Object</label> <textarea class="form-control" name="object" Rows="4"></textarea> </div> It is the object, but I already use it on another page, the cadastralicitacoes.php

  • Everything that is relevant information should be in the question. Add this snippet of html also to the question indicating that the name of the bidding comes from.

No answers

Browser other questions tagged

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