Uploading files in PHP

0

I can not upload PPTX files, others upload normally. Files are sent via ajax. The error happens when you move the file to the folder!

var form = $('#fileUploadForm'+idbtn[1])[0];
// Create an FormData object
var data = new FormData(form);
// If you want to add an extra field for the FormData
data.append("CustomField", "This is some extra data, testing");
// disabled the submit button
$(this).hide();

$.ajax({
    type: "POST",
    enctype: 'multipart/form-data',
    url: "relatorios/upload-resultados.php",
    data: data,
    processData: false,
    contentType: false,
    cache: false
});

PHP

<?php
    include("../template/functions/php/class-connection-bank.php");
    #Funções de tratamento do Sistema
    include("../template/functions/php/functions.php");
    include("../template/functions/php/consultas.php");

    #Diretoria e ano do arquivo que será enviado
    $abaano = strtolower($_POST["anoaba"]);
    #Mês referente ao arquivo que vai ser enviado
    $mes    = strtolower($_POST["mesnome"]);

    #Quebra o nome do arquivo para pegar a extensão do mesmo
    $temporary      = explode(".", $_FILES["file"]["name"]);
    #Pega a extensão do arquivo
    $file_extension = end($temporary);
    #Quebrando a variável para montagem do nome
    $config = explode("-",$abaano);
    #Montando o nome do arquivo conforme precisamos
    $nome_arquivo = $config[0]."-".tiracento($mes)."-".$config[1].".".$file_extension;


    $diretoria = $config[0];
    $mes = tiracento($mes);
    $ano = $config[1];
    $endereco = "downloads/resultados/";

    #Inserção no banco
    $pdo = conecta();
    $sqlinsert  = "INSERT INTO 'relatorios' (diretoria, mes, ano, endereco) VALUES (:diretoria, :mes, :ano, :endereco);";
    $queryinsert= $pdo->prepare($sqlinsert);
    $queryinsert->bindParam(':diretoria',$diretoria);
    $queryinsert->bindParam(':mes', $mes);
    $queryinsert->bindParam(':ano', $ano);
    $queryinsert->bindParam(':endereco', $endereco);
    $queryinsert->execute();

    if($queryinsert){        
        #Local onde o arquivo será armazenado
        $target_dir = "downloads/resultados/";
        #Nome completo do arquivo com o diretório
        $target_file = $target_dir . $nome_arquivo;
        #Variável que indica se o upload foi ou não realizado
        $uploadOk = 1;
        #
        $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));

        $retorno = array();

        // Check if image file is a actual image or fake image
        if(isset($_POST["file"])) {
            $check = $_FILES["file"]["tmp_name"];
            if($check !== false) {
                echo "File is an image - " . $check["mime"] . ".";
                $uploadOk = 1;
            } else {
                echo "File is not an image.";
                $uploadOk = 0;
            }
        }
        #verifica se o arquivo existe no diretório
        if (file_exists($target_file)) {
            echo "Desculpe, o arquivo já existe.";
            $uploadOk = 0;
        }

        #Verifica o tamanho do arquivo
        if ($_FILES["file"]["size"] > 5000000) {
            echo "Desculpe, o arquivo é muito grande.";
            $uploadOk = 0;
        }

        #Verifica os se o arquivo é permitido
        if($imageFileType != "pptx" && $imageFileType != "ppt" && $imageFileType != "pdf"
        && $imageFileType != "xls" && $imageFileType != "xlsx" ) {
            echo "Apenas arquivos PPT, PPTX, PDF, XLS & XLSX são permitidos.";
            $uploadOk = 0;
        }
        #Verifica se passou pelas validações
        if ($uploadOk == 0) {
            echo "Seu arquivo não foi enviado.";
        } else {
            #Se tudo estiver ok, tenta fazer o upload do arquivo
            if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
                echo "O arquivo ". basename( $_FILES["file"]["name"]). " foi renomeado para ".$nome_arquivo." e enviado com sucesso.";
            } else {
                echo "Desculpe, houve um erro ao enviar seu arquivo.";
            }
        }
    }else{
        echo "error";
    }
?>
    
asked by anonymous 02.08.2018 / 13:36

0 answers