Upload de arquivos jQuery do Sweet Alert 2 com php
Estou tentando criar um carregador de arquivos dentro de um modal Sweet Alert 2 com jQuery e php. Aqui está o meu código, mas não está funcionando: como posso fazer isso funcionar?
Obrigado
HTML (o botão para abrir o modal com o Sweet Alert 2):
<button class="bx--btn bx--btn--primary" type="button" id="swal_upload">Apri</button>
JavaScript:
$('#swal_upload').click(function(){
var api = 'api/UploadFile.php';
swal({
title: "Carica immagine",
html: '<input id="fileupload" type="file" name="userfile">'
}).then(function() {
var formData = new FormData();
formData.append('userfile', $('#fileupload').val().replace(/.*(\/|\\)/, ''));
console.log(formData);
$.ajax({
type: 'POST',
url: api,
data: formData,
dataType: 'json',
processData: false,
contentType: false,
headers: {"Content-Type":"form-data"},
async: true,
success: function(result){
console.log("OK client side");
console.log(result.Response);
}
});
})
});
php (api / UploadFile.php):
$entered = "PHP started";
$tmpFilePath = $_FILES['userfile']['tmp_name'];
$uploaddir = 'public/';
if ($tmpFilePath != ""){
$newFilePath = $uploaddir . basename($_FILES['userfile']['name']);
if(move_uploaded_file($tmpFilePath, $newFilePath)) {
$uploaded = "Upload OK server side";
} else {
$uploaded = "Upload failed server side";
}
}
// Prepare response, close connection and send response to front-end
$array['Response'] = array(
'entered' => $entered,
'tmp_path' => $tmpFilePath,
'new_path' => $newFilePath,
'file_name' => $_FILES['file']['name'],
'uploaded' => $uploaded
);
echo json_encode($array);
A saída que tenho no console é:
FormData {}proto: FormData OK lado do cliente {digitado: "PHP iniciado", tmp_path: null, novo_caminho: nulo, file_name: null, carregado: null} digitado: "PHP iniciado" file_name: null new_path: null tmp_path: null, enviado: nullproto:Objeto
Como você pode ver, o php inicia, mas nenhum arquivo é passado para o servidor.