I can not upload file to the server

0

I'm trying to upload a file to the server (PDF) and it does not upload. In the page that is to send the file, when I click send nothing happens.

Code of the page where the file is sent:

<?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>
                  <div class="form-group">
                    <form method="post" action="recebe_upload.php" enctype="application/x-www-form-urlencoded">
                      <input type="hidden" name="enviou" value="1">
                      <label>Arquivo</label>
                      <input type="file" name="arquivo" />
                    </form>
                  </div>
                  <button type="submit" class="btn btn-default">Enviar</button>
                </form>
                </div>
            </div>
        </div>
 <?php
 require_once("rodape.php");

PHP code:

<?php 
require_once "funcoes.php";

$msg = false;

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
                $enviou = move_uploaded_file($_FILES['arquivo']['tmp_name'], $diretorio.$novo_nome);

                if($enviou){
                    $msg = "<strong>Sucesso!</strong> Arquivo enviado corretamente.";
                    $class = "alert-success";
                }else{
                    $msg = "<strong>Erro!</strong> Falha ao enviar o arquivo.";
                    $class = "alert-danger";
                }
            }

        }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";
    }
}
?>
    
asked by anonymous 02.10.2017 / 02:37

1 answer

3

The problem is that FORM can not go in FORM:

        <!-- form fora --->
    <form action="cadastralicitacao.php" method="post">
      ...
      <div class="form-group">

        <!-- form dentro --->
        <form method="post" action="recebe_upload.php" enctype="application/x-www-form-urlencoded">
          <input type="hidden" name="enviou" value="1">
          <label>Arquivo</label>
          <input type="file" name="arquivo" />
        </form>
        <!-- form dentro --->

      </div>
      <button type="submit" class="btn btn-default">Enviar</button>
    </form>
        <!-- form fora --->

  </div>

That is, if you do this:

<form>
    <form>
    </form>
</form>

It will not work, but if you do it will:

<form>
</form>

<form>
</form>

Take the form from inside the other and one more detail, the upload form can not use "application/x-www-form-urlencoded" , it should use enctype="multipart/form-data"

    
02.10.2017 / 03:12