I'm trying to upload a file via Upload to a certain folder but I'm not able to make or understand the error being accused by the script, I'll try to be as clear as possible in describing the problem. Here is the excerpt from Upload Upload:
// INÍCIO GRAVA UPLOAD
function GravaUpload(event) {
event.preventDefault();
var params = $('#frmUpload').serializeArray();
$("#resultado-upload").html('<img src="../_imagens/ajax-loader.gif" alt="Enviando..." />');
$.post(
'GravaUpload.php',
params,
function( json, textStatus, jQxhr )
{
if (json.status != "ERRO") {
var msg = '<div class="alert alert-info" role="alert">' + json.msg + '</div>' ;
} else {
var msg = '<div class="alert alert-danger" role="alert">' + json.msg + '</div>' ;
}
$("#resultado-upload").html(msg);
},
'json'
)
.fail(function( jqXhr, textStatus, errorThrown ){
console.log( jqXhr, textStatus, errorThrown );
try {
var json = $.parseJSON(jqXHR.responseText);
var msg = '<div class="alert alert-danger" role="alert">' + json.errorMessage + '.</div>';
$("#resultado-upload").html(msg);
} catch(e) {
var msg = '<div class="alert alert-danger" role="alert">Ocorreu um erro ao tentar manipular os dados. Verifique sua conexão com o banco de dados.</div>';
$("#resultado-upload").html(msg);
}
});
} // FIM GRAVA DETALHES DO CONTRATO
$(document).ajaxError(function (e, data, settings, exception) {
console.log(e, data, settings, exception);
});
$(document).ready(function() {
//***** Validações de campos e envio do formulario por AJAX
$("#frmUpload").validate({
rules: {
fileUpload: {
required: true,
}
},
highlight: function(element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function(element) {
$(element).closest('.form-group').removeClass('has-error');
},
errorElement: 'span',
errorClass: 'help-block',
errorPlacement: function(error, element) {
if (element.parent('.input-group').length) {
error.insertAfter(element.parent());
} else {
error.insertAfter(element);
}
},
//Monta a mensagem em uma caixa separada se necessário
//errorLabelContainer: $('#mensagens'),
//função para enviar após a validação
submitHandler: function(form) {
GravaUpload(event);
} //end-submiteHandler
});
});
Shipping Form:
<form class="well" id="frmUpload" action="" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="fileUpload">Selecione o Documento para Upload</label>
<input type="file" name="fileUpload">
</div>
<input type="submit" class="btn btn-primary" value="Upload">
</form>
Upload process:
// Ativar relatórios de erro php
error_reporting(E_ALL);
ini_set('display_errors', 1);
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$name = $_FILES['fileUpload']['name'];
$tmpName = $_FILES['fileUpload']['tmp_name'];
$error = $_FILES['fileUpload']['error'];
$size = $_FILES['fileUpload']['size'];
$ext = strtolower(pathinfo($name, PATHINFO_EXTENSION));
switch ($error) {
case UPLOAD_ERR_OK:
$valid = true;
//validate file extensions
if ( !in_array($ext, array('jpg','jpeg','png','gif','doc','docx','pdf','xls')) ) {
$valid = false;
$aretorno["msg"] = 'Extensao de arquivo invalida ';
}
//validate file size
if ( $size/1024/1024 > 2 ) {
$valid = false;
$aretorno["msg"] = 'Tamanho do arquivo e superior a tamanho maximo permitido';
}
//upload file
if ($valid) {
$targetPath = dirname( __FILE__ ) . DIRECTORY_SEPARATOR. 'arquivos' . DIRECTORY_SEPARATOR. $name;
move_uploaded_file($tmpName,$targetPath);
header( 'Location: DetalhesContrato.php' ) ;
exit;
}
break;
case UPLOAD_ERR_INI_SIZE:
$aretorno["msg"] = 'O arquivo enviado excede a directiva upload_max_filesize em php.ini.';
break;
case UPLOAD_ERR_PARTIAL:
$aretorno["msg"] = 'O arquivo foi apenas parcialmente enviado.';
break;
case UPLOAD_ERR_NO_FILE:
$aretorno["msg"] = 'Nenhum arquivo foi transferido.';
break;
case UPLOAD_ERR_NO_TMP_DIR:
$aretorno["msg"] = 'Faltando uma pasta temporaria. Introduzida no PHP 4.3.10 e PHP 5.0.3.';
break;
case UPLOAD_ERR_CANT_WRITE:
$aretorno["msg"] = 'Falha ao gravar arquivo em disco. Introduzido no PHP 5.1.0.';
break;
default:
$aretorno["msg"] = 'Erro desconhecido';
break;
}
// echo $response;
//retornando o status / mensagem da execução
header('Content-Type: application/json');
echo json_encode($aretorno);
}
The upload falls on the first exception:
var msg = '<div class="alert alert-danger" role="alert">Ocorreu um erro ao tentar manipular os dados. Verifique sua conexão com o banco de dados.</div>';
I'm not yet using a connection to BD
because I'm not sending anything.