When submitting a file on a form, it is not sent

0

I have a problem with a university job where we have the creation of a book registry. So far so good, however, we have a part to insert the cover. Anyway, the file is not sent. I created a new directory to test and it also did not work. Here is the code:

<form enctype="multipart/form-data" method="post" action="index.php">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input type="file" name="capa"/>
<input type="submit" name="cadastrar" class="btn btn-primary" value="Cadastrar dados">
</form>

<?php
if(isset($_POST['cadastrar'])):
$destino = '/' . $_FILES['capa']['name'];
$arquivo_tmp = $_FILES['capa']['tmp_name'];
move_uploaded_file( $arquivo_tmp, $destino);
var_dump($_FILES);
endif;
?>

By clicking Submit Direct without selecting any file, it falls into the IF normally. However, when submitting a file and clicking Submit, nothing happens. Only the page is reloaded. An attempt was made to put the correct $ destination and continue the same thing.

    
asked by anonymous 24.11.2016 / 15:02

2 answers

0

The problem is that you are checking the submit button with isset (). You need to do the isset with $ _FILES ["cover"].

    
24.11.2016 / 15:40
0

Hello,

Apparently this is ok in this part.

<form enctype="multipart/form-data" method="post" action="index.php">
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <input type="file" name="capa"/>
    <input type="submit" name="cadastrar" class="btn btn-primary" value="Cadastrar dados">
</form>

I think the error is in the isset ($ _ POST ['register']) as @leonardopessoa replied. Try this, take a look if something is happening (Include the file, if not an empty array will appear.)

<?php
    // Verifica se a variável $_POST não é vazia, ou seja, houve um submit
    if (!empty($_POST)) {
    // Verifica se existe arquivo enviado
       if (isset($_FILES) {
            var_dump($_FILES);
            echo "<br>";
            var_dump($_POST);
       } else {
            echo "O campo 'nome' não existe na variável $_POST";
       }
    } else {
       echo "Não houve submit no formulário";
    }  
?>

This is my code that works perfectly, at a glance if it works there either.

<form enctype="multipart/form-data" action="index.php" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <input type="file" name="capa"/>
    <input type="submit" value="cadastrar" class="btn btn-primary" value="Cadastrar dados" />
</form>

<?php
    //Verificando se o campo input file esta vazio
    $fileupload         = isset($_FILES["capa"]) ? $_FILES["capa"] : false;
    $tamanhoMax         = 30000;
    //Tratamento do nome do arquivo
    $newNameFile        = str_replace(" ", "_", $fileupload["name"]);
    $newNameFile        = strtolower($newNameFile);
    //Caminho e caminho completo do arquivo
    $diretorio          = "./upload/";
    $diretorioCompleto  = $diretorio . $newNameFile;

    //Verificando se o arquivo foi foi passado via upload
    if(is_uploaded_file($fileupload) == 0){
        die("Arquivo não foi enviado via upload!");
    }else{
        //O tamanho esta no limite?
        if($_FILES["fileupload"]["size"] > $tamanhoMax || $_FILES["fileupload"]["error"] == UPLOAD_ERR_INI_SIZE || $_FILES["fileupload"]["error"] == UPLOAD_ERR_FORM_SIZE ){
            die("Erro! O arquivo enviado por você ultrapassa o limite máximo de " . $tamanhoMax . " bytes! Envie outro arquivo");
        }else{
            //Especificando formato de arquivos possíveis, se você for querer mudar 
            if($_FILES["fileupload"]["type"]!=="image/png" && $_FILES["fileupload"]["type"]!="image/gif" && $_FILES["fileupload"]["type"]!="image/jpg" && $_FILES["fileupload"]["type"]!="image/jpeg"){
                die("O arquivo enviado por você não é uma imagem!<br>Tente novamente!");
            }else{
                //Verifica se ja existe um arquivo com este nome no diretorio destino
                if(file_exists($diretorioCompleto)){
                    die("Um arquivo com esse nome já foi enviado!");
                }else{
                    //Move da pasta temporaria para a pasta definitiva
                    if(move_uploaded_file($fileupload['tmp_name'], $diretorio . $fileupload['name'])){
                        echo "Arquivo enviado com sucesso!";
                    }else{
                        die("Erro ao enviar seu arquivo!<br>" . $fileupload[error]);
                    }
                }
            }
        }
    }
?>
    
24.11.2016 / 21:15