I'm trying to adapt a script that I have to upload with Bootstrap Dialog but I'm not getting it, I wish I could use the same form I already perform some operations to maintain the development pattern, I made a modification in the code to try to solve the problem and it looked like this:
// INSERÇÃO DE DADOS - UPLOAD function DlgInserirUpload() { var params = { Operacao: 'Upload', sObservacao: $('#sObservacao').val(), IdContrato: $("input[name=IdContrato]").val(), type: 'POST', arquivo: $("#arquivo").val(), mimeType:"multipart/form-data", contentType: false, cache: false, processData:false, }; GravaFase(params); } // ONDE RESGATO AS VARIÁVEIS DO MEU FORMULÁRIO // PROCESSO INTEGRADO - INSERÇÃO, ALTERAÇÃO E DELEÇÃO function GravaFase(params) { console.log(params); $.post( 'pProcessoFase.php', params, function( json, textStatus, jQxhr ){ if (json.status != "ERRO") { var dialogInstance = BootstrapDialog.show({ title: 'SUCESSO', type: BootstrapDialog.TYPE_SUCCESS, message: json.msg, closable: false, buttons: [ { label: 'Fechar', cssClass: 'btn-success', action: function(dialogRef){ dialogRef.close(); // location.reload(); var IdContrato = json.par; // console.log(aba); // console.log(IdContrato); $("#resultado-fase").load('pListaFaseContrato.php',{IdContrato:IdContrato}); // LIMPANDO CAMPOS DO FORMULÁRIO $("#IdTipoFase").val(0); $("#dData").val(""); $("#dHora").val(""); $("#sDescricao").val(""); $("#resultado-upload").load('pListaUpload.php',{IdContrato:IdContrato}); // LIMPANDO CAMPOS DO FORMULÁRIO $("#sObservacao").val(0); $("#arquivo").val(""); $("#resultado-obrigatoria").load('pListaFaseObrigatoria.php',{IdContrato:IdContrato}); // LIMPANDO CAMPOS DO FORMULÁRIO $("#IdTipoFase1").val(0); $("#iOrdem").val(0); } } ] }); } else { var dialogInstance = BootstrapDialog.show({ title: 'ERRO', type: BootstrapDialog.TYPE_DANGER, message: json.msg, closable: false, buttons: [ { label: 'Fechar', cssClass: 'btn-danger', action: function(dialogRef){ dialogRef.close(); } } ] }); } }, 'json' ) .fail(function( jqXhr, textStatus, errorThrown ){ try { var json = $.parseJSON(jqXHR.responseText); var dialogInstance = BootstrapDialog.show({ title: 'ERRO', type: BootstrapDialog.TYPE_DANGER, message: json.msg }); } catch(e) { var dialogInstance = BootstrapDialog.show({ title: 'ERRO', type: BootstrapDialog.TYPE_DANGER, message: json.msg }); } }); }
In my console this result appears:
IdContrato: "34" Operacao: "Upload" arquivo: "C:\fakepath\Chrysanthemum.jpg" cache: false contentType: false mimeType: "multipart/form-data" processData: false sObservacao: "swewewew" type: "POST"
And on the server side I try to redeem like this:
// DIRETÓRIO $diretorio = 'upload/'; if (!empty($_FILES)) { $ArquivoTemporario = $_FILES['arquivo']['tmp_name']; $NomeArquivo = $_FILES['arquivo']['name']; $CaminhoAnexo = dirname(__FILE__) . '/' . $diretorio; $targetFile = rtrim($CaminhoAnexo,'/') . '/' . $_FILES['arquivo']['name']; $TipoArquivo = strtolower(pathinfo($NomeArquivo, PATHINFO_EXTENSION)); $Caminho = $diretorio; // Validate the file type $fileTypes = array('jpg','jpeg','gif','png','pdf','doc','docx','xls','xlsx'); // File extensions $fileParts = pathinfo($_FILES['arquivo']['name']); if (in_array($fileParts['extension'],$fileTypes)) { move_uploaded_file($ArquivoTemporario,$targetFile); } else { $aretorno["msg"] = "Ocorreu um erro na inclusão dos dados:"; $aretorno["status"] = "ERRO"; } }