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";
}
?>